首先创建一个maven工程,添加spring-data-mongodb的依赖,这边我们用目前最新的1.9.2版本,mongodb用3.0以上的,jdk用的1.8。
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.9.2.RELEASE</version> </dependency>
然后在resources下面添加applicationContext.xml文件,增加mongo的连接配置信息,下面只贴一部分,全部的在源码中查看。
<!-- 连接池配置 -->
<mongo:mongo id="mongo" replica-set="${mongo.replicaSet}">
<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="${mongo.writeNumber}" write-timeout="${mongo.riteTimeout}"
write-fsync="${mongo.writeFsync}" />
</mongo:mongo>
<!-- Mongodb的模板 -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
<constructor-arg name="mongoConverter" ref="mappingConverter" />
</bean>resources下面添加mongo.properties文件,增加连接配置信息。
#mongo info mongo.replicaSet=127.0.0.1:27017 mongo.connectionsPerHost=8 mongo.threadsAllowedToBlockForConnectionMultiplier=4 mongo.connectTimeout=1000 mongo.maxWaitTime=1500 mongo.autoConnectRetry=true mongo.socketKeepAlive=true mongo.socketTimeout=1500 mongo.slaveOk=true mongo.writeNumber=1 mongo.riteTimeout=0 mongo.writeFsync=true mongo.username=cxytiandi mongo.password=cxytiandi mongo.db=cxytiandi
最后创建测试类,看看是否能正确连上mongodb
package com.cxytiandi.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.mongodb.core.MongoTemplate;
/**
* 测试类
* @author yinjihuan
*
*/
public class SpringMongoClient {
private static MongoTemplate mongoTemplate;
static {
//加载spring
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
mongoTemplate = (MongoTemplate) ac.getBean("mongoTemplate");
}
public static void main(String[] args) throws Exception {
//读取所有的集合名称
mongoTemplate.getCollectionNames().forEach(System.out::println);
}
}输出结果如下,库中有多少集合就会输出多少
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
fs.chunks
fs.files