Spring配置mongodb多数据源

数据源一properties:
mongo.host=192.168.2.254
mongo.port=27017
mongo.dbname=beadwalletloan
mongo.table=test
mongo.name=test
mongo.password=test123
mongo.credentials=root:WaterElephant#2016@admin
mongo.replicaSet=
#每个host允许链接的最大链接数,这些链接空闲时会放入池中,
#如果链接被耗尽,任何请求链接的操作会被阻塞等待链接可用
mongo.connectionsPerHost=50
#此参数跟connectionsPerHost的乘积为一个线程变为可用的最大阻塞数
#超过此乘积数之后的所有线程将及时获取一个异常
mongo.connectionMultiplier=30
#链接超时的毫秒数,0表示不超时,此参数只用在新建一个新链接时
mongo.connectTimeout=10000
#此参数表示socket I/O读写超时时间
mongo.socketTimeout=15000
#一个线程等待链接可用的最大等待毫秒数,0表示不等待,负数表示等待时间不确定
mongo.maxWaitTime=60000
#该标志用于控制socket保持活动的功能,通过防火墙保持连接活跃
mongo.socketKeepAlive=false

数据源二properties:
mongodb.host=192.168.146.100
mongodb.port=27017
mongodb.dbname=beadwalletloan
mongodb.credentials=root:mongodb@admin

<?xml version="1.0" encoding="UTF-8"?>

数据源一的配置文件

<mongo:mongo-client id=“mongo” host=" m o n g o . h o s t &quot; p o r t = &quot; {mongo.host}&quot; port=&quot; mongo.host"port="{mongo.port}" credentials=" m o n g o . c r e d e n t i a l s &quot; r e p l i c a − s e t = &quot; {mongo.credentials}&quot; replica-set=&quot; mongo.credentials"replicaset="{mongo.replicaSet}">
<mongo:client-options
connections-per-host=" m o n g o . c o n n e c t i o n s P e r H o s t &quot; m a x − w a i t − t i m e = &quot; {mongo.connectionsPerHost}&quot; max-wait-time=&quot; mongo.connectionsPerHost"maxwaittime="{mongo.maxWaitTime}"
socket-timeout=" m o n g o . s o c k e t T i m e o u t &quot; c o n n e c t − t i m e o u t = &quot; {mongo.socketTimeout}&quot; connect-timeout=&quot; mongo.socketTimeout"connecttimeout="{mongo.connectTimeout}"
socket-keep-alive="${mongo.socketKeepAlive}"/>
</mongo:mongo-client>

数据源二的配置文件
<mongo:mongo-client id="mongodb" host="${mongodb.host}" port="${mongodb.port}" credentials="${mongodb.credentials}" replica-set="${mongo.replicaSet}">
	<mongo:client-options 
		connections-per-host="${mongo.connectionsPerHost}" 
		max-wait-time="${mongo.maxWaitTime}"
		socket-timeout="${mongo.socketTimeout}"
		connect-timeout="${mongo.connectTimeout}"
		socket-keep-alive="${mongo.socketKeepAlive}"/>
</mongo:mongo-client>

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

<mongo:db-factory id ="mongoFactory" dbname="${mongodb.dbname}" mongo-ref="mongodb" />

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
</bean>
  
<bean id="mongodbTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoFactory" />
    <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
</bean>

<bean id="mappingMongoConverter"   
    class="com.waterelephant.mongo.converter.MyMappingMongoConverter">
    <constructor-arg name="dbRefResolver" ref ="dbRefResolver"/>
    <constructor-arg name="mappingContext" ref="mappingContext" />   
    <property name="typeMapper" ref="defaultMongoTypeMapper" />  
    <property name="listConverter" ref="listConverter"/> 
</bean>

<bean id="dbRefResolver" class="org.springframework.data.mongodb.core.convert.DefaultDbRefResolver">
  	<constructor-arg name="mongoDbFactory" ref ="mongoDbFactory"/>
</bean>  

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

<bean id="mappingContext" class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />   
    
<bean id="listConverter" class="org.springframework.beans.factory.config.ListFactoryBean">
	<property name="sourceList">
 		<list>
 			<value>com.waterelephant.entity.BwKuainiuCalls</value>
 			<value>com.waterelephant.entity.BwKuainiuNets</value>
 			<value>com.waterelephant.entity.BwKuainiuSmses</value>
 			<value>com.waterelephant.entity.BwXlCalls</value>
 			<value>com.waterelephant.entity.BwXlNets</value>
 			<value>com.waterelephant.entity.BwXlSmses</value>
 			<value>com.waterelephant.entity.BwXlContactList</value>
 			<value>com.waterelephant.entity.BwXgAreaAnalysisDetail</value>
 			<value>com.waterelephant.entity.BwThirdOperateVoice</value>
 			<value>com.waterelephant.entity.XgCallLog</value>
 			<value>com.waterelephant.entity.XgCallLogDetail</value>
 			<value>com.waterelephant.entity.BwMfCallInfoRecord</value>
 			<value>com.waterelephant.less.mongoeEntity.MongoBwXlCalls</value>
 		</list>
 	</property>
 </bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值