spring+springMVC+mybatis框架 兼容mongodb(mysql+mongodb)

  • Post author:
  • Post category:mysql


1,创建mongodb.properties

#DB name
mongo.dbname = ***
#username
mongo.username = ***
#password
mongo.password = ***
#host
mongo.host = 192.168.1.*
#port
mongo.port= 27017
#xiancheng zui da zu se shu
mongo.connectionsPerHost= 8
#xiancheng dui lie shu
mongo.threadsAllowedToBlockForConnectionMultiplier= 4
#connectTimeout ms
mongo.connectTimeout= 1500
#maxWaitTime
mongo.maxWaitTime= 1500
#autoConnect
mongo.autoConnectRetry= true
#socketKeepAlive
mongo.socketKeepAlive= true
#socketTimeout
mongo.socketTimeout=1500
#du xie fen li
mongo.slaveOk=true

2,创建spring-mongodb.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cache="http://www.springframework.org/schema/cache"
	xmlns:mongo="http://www.springframework.org/schema/data/mongo" xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
    http://www.springframework.org/schema/data/mongo   
    http://www.springframework.org/schema/data/mongo/spring-mongo.xsd
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-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/mvc   
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

	<!-- 加载mongodb的属性配置文件 -->
	<context:property-placeholder location="classpath:mongodb.properties"/>

	<!-- 我们使用的mongodb的版本是3.X,所以在构造这段话的时候要根据 Mongo 类的构造函数来构造,不同版本可能会造成构造函数的不同 -->
	<mongo:mongo-client id="mongo" host="${mongo.host}" port="${mongo.port}">

		<mongo:client-options connections-per-host="${mongo.connectionsPerHost}"
			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}" />
	</mongo:mongo-client>

	<!-- 用户验证 -->
	<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
		<constructor-arg name="username" value="${mongo.username}" />
		<constructor-arg name="password" value="${mongo.password}" />
	</bean>
	<!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 -->
	<bean id="mongoDbFactory"
		class="org.springframework.data.mongodb.core.SimpleMongoDbFactory">
		<constructor-arg ref="mongo" />
		<constructor-arg value="${mongo.dbname}" />
	</bean>

	<bean id="mappingContext"
		class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />

	<bean id="defaultMongoTypeMapper"
		class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
		<constructor-arg name="typeKey">
			<null />
		</constructor-arg>
	</bean>

	<!-- collection的映射 -->
	<bean id="mappingMongoConverter"
		class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
		<constructor-arg name="mappingContext" ref="mappingContext" />
		<property name="typeMapper" ref="defaultMongoTypeMapper" />
	</bean>

	<!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 -->
	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
		<constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
	</bean>

</beans>

3,spring-mvc.xml 里面引入mongodb配置

<!-- 引入mongodb的相关配置 -->
    <import resource="classpath:spring-mongodb.xml"/>

4,实体 entity

@Document(collection = "表名")
public class Test{

	@Id
	private String id;
	/**
	
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}


}

5,service

@Service  
	public class TestService implements ITestService {  
	  
	    @Autowired  
	    private MongoTemplate mongoTemplate;  
	      
	    @Override  
	    public Map<String,Object> dataList(Test test) throws Exception {  
	        Map<String,Object> map = MapUtils.createFailMap();  
	        List<Test> list = new ArrayList<Test>();  
	        Query query = new Query();  
	        query.with(new Sort(Direction.DESC,"_id"));  
	        list = mongoTemplate.find(query, Test.class);  
	        map.put("rows",list);  
	        map.put("total", list.size());  
	        return map;  
	    }  
	      
	} 

end!



版权声明:本文为strure原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。