spring data & mongodb的参考地址是
http://www.springsource.org/spring-data/mongodb/, 可以通过
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/来查询详细的配置和代码的操作文档。当然,看文档是个很累眼睛和脑子的活, 在这里举个简单的例子说明一下SPRING 和MONGDB基本配置。
1. 通过MAVEN 建立WEBAPP项目, 在项目中配置 spring mvc
我是通过ECLIPSE来建立maven项目地, 然后通过阅读这位大虾的教程
http://limingnihao.iteye.com/blog/830409配置了spring MVC, 谢谢大虾的帮助!!
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext*.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>mongo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mongo-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mongo</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
我在启动TOMCAT的时候,碰到了一个问题,TOMCAT操作台报告:listenerError的错误, mongo服务不能启动。 根据网上查询的资料, 我作了以下配置:
在webapp / WEB-INF / classes 目录下,配置了 logging.properties的文件,当TOMCAT启动发生错误时, 会在TOMCAT安装目录下创建logs2目录并写下错误的提示, 可以从这个错误log中得到tomcat操作台错误的信息。
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs2
org.apache.juli.FileHandler.prefix = error-debug.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
pom.xml, 以下一堆 dependency 是常用的, 可以选择使用。
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!-- log4j -->
<!--
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>runtime</scope>
</dependency>
-->
<!-- commons for db -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.4</version>
</dependency>
<!-- common logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging-api</artifactId>
<version>1.1</version>
</dependency>
<!-- spring fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!-- dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<!-- spring tx dependency -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.2.2</version>
</dependency>
<!-- json lib -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<classifier>jdk15</classifier>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.5</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
2. 配置实用MONGODB
pom.xml: 在dependency中添加
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
在spring 的配置文件中,作如下配置
<!-- mongoDB的配置对象, option可选择使用 -->
<bean id="mongoOptions" class="com.mongodb.MongoOptions">
<!-- 服务器是否自动重连,默认为false -->
<property name="autoConnectRetry" value="false" />
<!-- 对同一个服务器尝试重连的时间(毫秒),设为0时默认使用15秒 -->
<property name="maxAutoConnectRetryTime" value="0" />
<!-- 与每个主机的连接数,默认为10 -->
<property name="connectionsPerHost" value="10" />
<!-- 连接超时时间(毫秒),默认为10000 -->
<property name="connectTimeout" value="10000" />
<!-- 是否创建一个finalize方法,以便在客户端没有关闭DBCursor的实例时,清理掉它。默认为true -->
<property name="cursorFinalizerEnabled" value="true" />
<!-- 线程等待连接可用的最大时间(毫秒),默认为120000 -->
<property name="maxWaitTime" value="120000" />
<!-- 可等待线程倍数,默认为5.例如connectionsPerHost最大允许10个连接,则10*5=50个线程可以等待,更多的线程将直接抛异常 -->
<property name="threadsAllowedToBlockForConnectionMultiplier" value="5" />
<!-- socket读写时超时时间(毫秒),默认为0,不超时 -->
<property name="socketTimeout" value="0" />
<!-- 是socket连接在防火墙上保持活动的特性,默认为false -->
<property name="socketKeepAlive" value="false" />
<!-- 对应全局的WriteConcern.SAFE,默认为false -->
<property name="safe" value="true" />
<!-- 对应全局的WriteConcern中的w,默认为0 -->
<property name="w" value="0" />
<!-- 对应全局的WriteConcern中的wtimeout,默认为0 -->
<property name="wtimeout" value="0" />
<!-- 对应全局的WriteConcern.FSYNC_SAFE,如果为真,每次写入要等待写入磁盘,默认为false -->
<property name="fsync" value="false" />
<!-- 对应全局的WriteConcern.JOURNAL_SAFE,如果为真,每次写入要等待日志文件写入磁盘,默认为false -->
<property name="j" value="false" />
</bean>
<!-- Factory bean that creates the Mongo instance -->
<bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
<property name="host" value="localhost" />
<property name="mongoOptions" ref="mongoOptions"/>
<!-- 设定写策略,默认为WriteConcern.SAFE,优先级高于mongoOptions中的safe -->
<property name="writeConcern" value="SAFE"/>
</bean>
<!-- MongoTemplate for connecting and quering the documents in the database -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongo" ref="mongo" />
<constructor-arg name="databaseName" value="test" />
</bean>
<!-- Use this post processor to translate any MongoExceptions thrown in @Repository annotated classes -->
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
通过以上配置,可以在数据操作的源码中直接调用 mangoTemplate 来进行mangoDB的数据操作。
分享到:
相关推荐
spring4 整合MongoDB详细讲解项目源码 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库 NoSql 其灵活的数据存储方式备受当前IT从业人员的青睐 Mongo DB很好的实现了面向对象的思想 OO思想 在Mongo DB中 每一条...
当我们需要将Spring与MongoDB整合时,目的是利用Spring的优秀管理和组织能力来操作MongoDB的数据存储。 首先,我们要了解Spring Data MongoDB项目,这是Spring框架对MongoDB支持的一部分。Spring Data MongoDB提供...
### Spring Data MongoDB 1.5.4 Reference Documentation #### 一、引言 Spring Data MongoDB 是 Spring Data 项目的一部分,旨在简化 MongoDB 数据访问,并提供一个一致的编程模型,该模型适用于 Spring ...
为了确保集群的健康运行,可以使用MongoDB的监控工具,如`db.runCommand({serverStatus: 1})`,或集成外部监控系统如Prometheus和Grafana。 总结,搭建Spring+MongoDB集群涉及安装MongoDB、配置复制集和分片、设置...
### 使用MongoDB与Spring Data创建Java应用:深入解析与实践指南 #### MongoDB与Spring Data简介 MongoDB,作为NoSQL数据库家族的一员,以其强大的可扩展性、高性能和开源特性,在数据库领域占据了一席之地。不同...
本文将详细介绍如何在Linux环境下设置MongoDB复制集,同时涵盖用户认证的配置以及MongoDB与Spring框架的集成。 首先,让我们了解MongoDB复制集。复制集是MongoDB中的一组MongoDB实例,它们之间保持着数据同步。当主...
Spring Data MongoDB 1.1.0 API CHM版 制作成chm版,方便大家查阅
注意:spring的不同版本与mongodb结合可能会有问题,自测:spring4.2.1结合mongodb会报错:**springframework.core.context.**service 此外,例子同时涉及: 1.例子中还说明了配置文件放在maven的src/main/java下与...
mongodb版本号3.2,需手动开启http服务,启动时使用命令 ./mongod --httpinterface 新增 修改 删除 查询 排序 分页 可查看: https://blog.csdn.net/m0_37132783/article/details/96992439
将 Spring MVC 与 MongoDB 结合,可以实现高效、灵活的后端数据存储和处理。 整合 Spring MVC 和 MongoDB 的过程主要涉及以下几个关键知识点: 1. **MongoDB 驱动安装**:在项目中,我们需要引入 MongoDB 的 Java ...
在Spring框架中整合MongoDB是一个常见的任务,它允许我们利用Spring Data MongoDB库来简化与MongoDB数据库的交互。以下是如何进行Spring MongoDB整合的详细步骤和相关知识点: 1. **依赖管理**: - `spring-core-...
"Mongodb入门教程、示例+Spring Boot完整示例+聚合" 本节课将完整地介绍 MongoDB 的入门教程、示例、Spring Boot 完整示例和聚合。 简介 NoSQL(Not Only SQL)是一种非关系型的数据库, MongoDB 是基于分布式...
在Spring Boot应用中,MongoDB的多数据源配置是一项关键任务,特别是在大型分布式系统中,可能需要连接到多个数据库以实现数据隔离、读写分离或灾难恢复策略。本篇文章将详细解析如何在Spring Boot中配置MongoDB的多...
3. 创建数据存储目录,例如 `C:\mongodb\data\db`。 4. 运行 `mongod.exe`,指定数据存储目录,如果路径包含空格需用双引号括起。 5. 启动 MongoDB shell(`mongo.exe`),默认监听本地的 27017 端口。也可以将其...
MongoDB是当前非常流行的一个NoSQL数据库,而Spring框架则为Java开发者提供了强大的支持,包括与各种数据库的集成,MongoDB也不例外。在本文中,我们将探讨如何使用Spring连接并操作MongoDB 3.0版本。 首先,我们...
本案例主要介绍了如何在 Spring 4.1.3.RELEASE 版本下集成 MongoDB,并通过 Spring Data MongoDB 1.8.0 进行简单的数据操作。 #### 二、环境准备 - **Spring版本**:4.1.3.RELEASE - **Spring Data MongoDB版本**...
4. **配置Spring**:创建一个Spring配置文件,例如`mongo-config.xml`,配置MongoDB的数据源和Spring Data MongoDB的Repository。你需要提供MongoDB服务器的地址、端口、数据库名等信息。 ```xml ...
Spring 4 mongoDB连接-入门套件 将文档插入mongo db集合的愚蠢应用程序。 依赖关系经理 Maven的3.2.5 如何建造 $ cd $ mvn clean package 怎么跑 $ cd $ java -jar target/lib/spring-mongodb-0.1.0.jar 运行...