来源:猿天地
链接:http://cxytiandi.com/blog/detail/1717
首先创建一个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
源码地址:查看原文进行源码下载