mongodb與spring整合

1.首先下載mongodb驅動包以及和spring整合的包java

<dependency>
			<groupId>org.mongodb</groupId>
			<artifactId>mongo-java-driver</artifactId>
			<version>3.1.0</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-mongodb</artifactId>
			<version>1.8.0.RELEASE</version>
		</dependency>

2.配置mongodb客戶端連接spring

<?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:p="http://www.springframework.org/schema/p"
	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-3.0.xsd
               http://www.springframework.org/schema/data/mongo
            http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">

	<mongo:mongo-client host="${mongo.host}" port="${mongo.port}"
		credentials="${mongo.username}:${mongo.password}@${mongo.databasename}"
		id="mongoClient">

		<mongo:client-options connections-per-host="${mongo.connectionsPerHost}"
			min-connections-per-host="${mongo.minConnectionsPerHost}"
			threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
			connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}"
			socket-keep-alive="${mongo.socketKeepAlive}" socket-timeout="${mongo.socketTimeout}"
			description="${mongo.description}" max-connection-idle-time="${mongo.maxConnectionIdleTime}"
			max-connection-life-time="${mongo.maxConnectionLifeTime}"
			heartbeat-socket-timeout="${mongo.heartbeatSocketTimeout}"
			heartbeat-connect-timeout="${mongo.heartbeatConnectTimeout}"
			min-heartbeat-frequency="${mongo.minHeartbeatFrequency}"
			heartbeat-frequency="${mongo.heartbeatFrequency}" />

	</mongo:mongo-client>


	<mongo:db-factory id="mongoDbFactory" dbname="${mongo.databasename}"
		mongo-ref="mongoClient" />

	<!-- 只要使用這個調用相應的方法操做 -->
	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
	</bean>
</beans>

屬性文件配置mongodb

mongo.host=192.168.1.112
mongo.port=27017
mongo.username=jiafeng
mongo.password=jiafeng
mongo.databasename=cms

mongo.connectionsPerHost=10
mongo.threadsAllowedToBlockForConnectionMultiplier=5
mongo.minConnectionsPerHost=5
#\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4
mongo.connectTimeout=10000
#\u7B49\u5F85\u65F6\u95F4
mongo.maxWaitTime=120000
#Socket\u8D85\u65F6\u65F6\u95F4
mongo.socketTimeout=0
mongo.socketKeepAlive=true

mongo.description=joyven test mongodb database
mongo.maxConnectionIdleTime=1500
mongo.maxConnectionLifeTime=0
#mongo slave
mongo.heartbeatSocketTimeout=1000
mongo.heartbeatConnectTimeout=1500
mongo.minHeartbeatFrequency=5
mongo.heartbeatFrequency=10

3.便可在service中使用socket

@Service("mgUserDao")
public class MgUserDaoImpl implements IMgUserDao {

	@Resource
	public MongoTemplate mongoTemplate;

	@Override
	public void insert(User user) {
		mongoTemplate.insert(user,"user");
	}

	@Override
	public List<User> findAllUsers() {
		// 須要設置集合對應的實體類和相應的集合名,從而查詢結果直接映射
		return mongoTemplate.findAll(User.class, "user");
	}

}
相關文章
相關標籤/搜索