环境信息:mongo3.x spring3.2.2 java 1.5+
-
加入 mongo 依赖
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.8.0.RELEASE</version> </dependency>
注意:不要加入 mongodb-driver
,在 spring-data-mongodb
里面已经加入了相应版本的 mongodb-driver
,是 2.x
版本的如果你加入的是 3.x
版本的 driver 肯定会报错。
-
添加配置信息,在你的
config.properties
中加入如下信息#请修改为你的mongo配置 mongo.hostport=127.0.0.1:27017 mongo.dbname=test mongo.connectionsPerHost=8 mongo.threadsAllowedToBlockForConnectionMultiplier=4 #连接超时时间 mongo.connectTimeout=1000 #等待时间 mongo.maxWaitTime=1500 mongo.autoConnectRetry=true mongo.socketKeepAlive=true #Socket超时时间 mongo.socketTimeout=1500 mongo.slaveOk=true
-
添加
mongo
配置文件mongoContext.xml
到classpath
下<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 --> <mongo:mongo id="mongo" replica-set="${mongo.hostport}"> <!-- 一些连接属性的设置 --> <mongo:options connections-per-host="${mongo.connectionsPerHost}" threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}" connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}" auto-connect-retry="${mongo.autoConnectRetry}" socket-keep-alive="${mongo.socketKeepAlive}" socket-timeout="${mongo.socketTimeout}" slave-ok="${mongo.slaveOk}" write-number="1" write-timeout="0" write-fsync="true"/> </mongo:mongo> <mongo:db-factory dbname="${mongo.dbname}" mongo-ref="mongo" /> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg ref="mongo" /> <constructor-arg name="databaseName" value="${mongo.dbname}" /> </bean> </beans>
-
我们需要将
mongoContext.xml
添加到我们的applicationContext.xml
中<import resource="classpath*:/mongo/mongoContext.xml"/>
我的目录结构如下:
-
测试我们是否配置成功
- 在单元测试中添加测试基础类
TestBase
@ContextConfiguration(locations={"classpath:applicationContext.xml"}) @TransactionConfiguration(defaultRollback=false) public class TestBase extends AbstractTransactionalJUnit4SpringContextTests{ @Override @Resource(name="dataSource") public void setDataSource(DataSource dataSource) { super.setDataSource(dataSource); } }
- 添加测试类
MongoTest
public class MongoTest extends TestBase { @Autowired MongoTemplate mongoTemplate; public void test(){ mongoTemplate.save(new Stu("tom",12)); System.out.println("插入成功"); } class Stu{ private String name; private int age; public Stu(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
- 在单元测试中添加测试基础类
}
```
* 运行测试,运行结束后在mongo中查看是否插入成功。
自此,mongo+spring3.2.2 配置完成
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于