参考:http://docs.spring.io/spring-data/data-mongo/docs/1.8.0.M1/reference/html/#mongo.mongo-xml-config
一、applicationContext-mongodb.properties
#如果,mongodb有配置集群url间可以使用 ","隔开
mongo.url=192.168.1.156:27017
mongo.dbname=autocomplete
mongo.username=easy
mongo.password=easy
mongo.connectTimeout=3000
mongo.maxWaitTime=60000
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
mongo.socketTimeout=0
mongo.slaveOk=true
#连接池连接数
mongo.connectionsPerHost=20
二、applicationContext-mongodb.xml
<?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:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.7.xsd"
default-lazy-init="true">
<mongo:mongo id="mongo" replica-set="${mongo.url}">
<mongo:options connections-per-host="${mongo.connectionsPerHost}"
threads-allowed-to-block-for-connection-multiplier="15"
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 id="mongoDbFactory" dbname="${mongo.dbname}"
mongo-ref="mongo" username="${mongo.username}" password="${mongo.password}" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
<!-- spring data,repositories 配置 -->
<mongo:repositories base-package="cn.com.easy.mongodb.dao" />
</beans>
三、测试用例
package cn.com.easy.mongodb.entry; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; /** * 搜索建议词条 * * @author nibili 2015年6月19日 * */ @Document public class Word { public static final String ID_FIELD = "id"; public static final String TEXT_FIELD = "text"; public static final String USECOUNT_FIELD = "useCount"; public static final String RESULTCOUNT_FIELD = "resultCount"; @Id private String id; /** 文本 */ private String text; /** 拼音 */ private String pinyin; /** 拼音首字母缩写 */ private String initials; /** 使用次数 */ private Integer useCount; /** 结果集大小 */ private Integer resultCount; /** * get id * * @return * @auth nibili 2015年6月19日 */ public String getId() { return id; } /** * set id * * @param id * @auth nibili 2015年6月19日 */ public void setId(String id) { this.id = id; } /** * get 文本 * * @return * @auth nibili 2015年6月19日 */ public String getText() { return text; } /** * set 文本 * * @param text * @auth nibili 2015年6月19日 */ public void setText(String text) { this.text = text; } /** * get 拼音 * * @return * @auth nibili 2015年6月19日 */ public String getPinyin() { return pinyin; } /** * set 拼音 * * @param pinyin * @auth nibili 2015年6月19日 */ public void setPinyin(String pinyin) { this.pinyin = pinyin; } /** * get 拼音首字母缩写 * * @return * @auth nibili 2015年6月19日 */ public String getInitials() { return initials; } /** * set 拼音首字母缩写 * * @param initials * @auth nibili 2015年6月19日 */ public void setInitials(String initials) { this.initials = initials; } /** * get 使用次数 * * @return * @auth nibili 2015年6月19日 */ public Integer getUseCount() { return useCount; } /** * set 使用次数 * * @param useCount * @auth nibili 2015年6月19日 */ public void setUseCount(Integer useCount) { this.useCount = useCount; } /** * get 结果集大小 * * @return * @auth nibili 2015年6月19日 */ public Integer getResultCount() { return resultCount; } /** * set 结果集大小 * * @param resultCount * @auth nibili 2015年6月19日 */ public void setResultCount(Integer resultCount) { this.resultCount = resultCount; } }
import static org.springframework.data.mongodb.core.query.Criteria.where; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Query; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import cn.com.easy.mongodb.entry.Word; import cn.com.easy.utils.FastJSONUtils; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/applicationContext-mongodb-demo.xml") public class MongoTest { private static final Logger log = LoggerFactory.getLogger(MongoTest.class); @Autowired private MongoTemplate mongoTemplate; /** * mongo插入 * * @auth nibili 2015年6月19日 */ @Test public void insert() { try { Word word = new Word(); word.setInitials("sj"); word.setPinyin("shouji"); word.setResultCount(10); word.setText("手机"); word.setUseCount(100); // mongoTemplate.insert(word); // word = mongoTemplate.findOne(new Query(where(Word.TEXT_FIELD).is("手机")), Word.class); log.info("结果:" + FastJSONUtils.toJsonString(word)); List<Word> list = mongoTemplate.findAll(Word.class); log.info("结果List:" + FastJSONUtils.toJsonString(list)); } catch (Exception ex) { ex.printStackTrace(); } } }