<?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"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 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.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
default-lazy-init="true">
<!--<!– 實例化mongo,可指定主機,端口,複製集 –> -->
<!--<mongo:mongo id="mongo" host="${mongodb.ip}" port="${mongodb.port}"> -->
<!--<!– mongo配置選項,包括是否自動得連, 連接池最大數量,連接超時時間,獲取連接最大等待時間,是否使用slave讀等等
–> -->
<!--<mongo:options auto-connect-retry="true" -->
<!--connections-per-host="30" connect-timeout="1000" max-wait-time="5000" -->
<!--slave-ok="true" socket-keep-alive="true" write-fsync="false" -->
<!--write-number="0" write-timeout="0" /> -->
<!--</mongo:mongo><!– socket-timeout="1500" –> -->
<!-- 生成mongod寫策略 -->
<util:constant id="safeWriteConcern" static-field="com.mongodb.WriteConcern.SAFE" />
<!-- 生成mongod寫操作結果檢查策略 -->
<util:constant id="writeResultChecking"
static-field="org.springframework.data.mongodb.core.WriteResultChecking.EXCEPTION" />
<!-- Spring MongoTemplate -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo" /><!-- 構造參數,引用mongo實例 -->
<constructor-arg name="databaseName" value="${mongodb.database}" /><!-- 構造參數,指定數據庫名稱 -->
<constructor-arg name="userCredentials" ref="userCredentials" />
<property name="writeConcern" ref="safeWriteConcern" /><!-- 設置寫策略 -->
<property name="writeResultChecking" ref="writeResultChecking" /><!-- 寫操作結果檢查策略 -->
</bean>
<!-- 異常轉換處理器 -->
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
<constructor-arg name="username" value="${mongodb.username}" />
<constructor-arg name="password" value="${mongodb.password}" />
</bean>
<!---->
<mongo:mongo id="mongo" replica-set="${mongodb.replica-set}">
<mongo:options
threads-allowed-to-block-for-connection-multiplier="${mongodb.threads-allowed-to-block-for-connection-multiplier}"
connect-timeout="${mongodb.connect-timeout}" max-wait-time="${mongodb.max-wait-time}"
auto-connect-retry="${mongodb.auto-connect-retry}" socket-keep-alive="${mongodb.socket-keep-alive}"
socket-timeout="${mongodb.socket-timeout}" slave-ok="${mongodb.slave-ok}"
write-number="${mongodb.write-number}" write-timeout="${mongodb.write-timeout}"
write-fsync="${mongodb.write-fsync}" />
</mongo:mongo>
</beans>
依賴
<!-- Mongodb begin -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.5.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.13.3</version>
</dependency>