spring多个数据源配置
sys.properties中的内容
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
DB.url=jdbc\:oracle\:thin\:@****\:1521\:****
DB.username=****
DB.password=**** jdbc.driverClassName2=oracle.jdbc.driver.OracleDriver
DB.url2=jdbc\:oracle\:thin\:@****\:1521\:****
DB.username2=****
DB.password2=**** Spring配置文件中添加的内容 <bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<!--数据库配置文件-->
<value>WEB-INF/sys.properties</value> </list>
</property>
</bean>
<!-- 配置数据源1 -->
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${DB.url}"/>
<property name="username" value="${DB.username}"/>
<property name="password" value="${DB.password}"/>
<!--initialSize: 初始化连接-->
<property name="initialSize" value="5"/>
<!--maxIdle: 最大空闲连接-->
<property name="maxIdle" value="3"/>
<!--minIdle: 最小空闲连接-->
<property name="minIdle" value="2"/>
<!--maxActive: 最大连接数量-->
<property name="maxActive" value="10"/>
<!--removeAbandoned: 是否自动回收超时连接-->
<property name="removeAbandoned" value="true"/>
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="180"/>
<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->
<property name="maxWait" value="3000"/>
<property name="poolPreparedStatements" value="false"/>
<property name="defaultAutoCommit" value="true"/>
<property name="validationQuery" value="select * from dual"/>
</bean>
<!-- 配置数据源2 -->
<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName2}"/>
<property name="url" value="${DB.url2}"/>
<property name="username" value="${DB.username2}"/>
<property name="password" value="${DB.password2}"/>
<!--initialSize: 初始化连接-->
<property name="initialSize" value="5"/>
<!--maxIdle: 最大空闲连接-->
<property name="maxIdle" value="3"/>
<!--minIdle: 最小空闲连接-->
<property name="minIdle" value="2"/>
<!--maxActive: 最大连接数量-->
<property name="maxActive" value="10"/>
<!--removeAbandoned: 是否自动回收超时连接-->
<property name="removeAbandoned" value="true"/>
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="180"/>
<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->
<property name="maxWait" value="3000"/>
<property name="poolPreparedStatements" value="false"/>
<property name="defaultAutoCommit" value="true"/>
<property name="validationQuery" value="select * from dual"/>
</bean> <!-- 事务1 -->
<bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource1" />
</bean>
<!-- 事务2 -->
<bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource2" />
</bean> <!-- 事务拦截1 -->
<bean id="transactionInterceptor1" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager1" />
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="do*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 事务拦截2 -->
<bean id="transactionInterceptor2" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager2" />
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="do*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <!-- 管理你连接的地方-->
<bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*Service</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor1</value>
<value>transactionInterceptor2</value>
</list>
</property>
</bean> <!-- ibatis的工厂数据源配置1 -->
<bean id="sqlMapClient1" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/config/sql-map-config.xml" /><!--这里是ibatis的sqlMap文件集合 -->
<property name="dataSource" ref="dataSource1" />
</bean> <!-- ibatis的工厂数据源配置2 -->
<bean id="sqlMapClient2" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/config/sql-map-config.xml" /><!--这里是ibatis的sqlMap文件集合 -->
<property name="dataSource" ref="dataSource2" />
</bean> <!-- ibatis抽象的Dao1 -->
<bean id="baseIbatisDAO1" abstract="true">
<property name="sqlMapClient">
<ref local="sqlMapClient1" />
</property>
</bean> <!-- ibatis抽象的Dao2 -->
<bean id="baseIbatisDAO2" abstract="true">
<property name="sqlMapClient">
<ref local="sqlMapClient2" />
</property>
</bean> <!--将数据源注入到dao层-->
<bean id="deptDAO" class="com.cqjk.datasv.dept.DeptDAO" parent="baseIbatisDAO1">
<property name="sqlmapNamespace">
<value>dept</value> </property>
</bean>
<bean id="userDAO" class="com.cqjk.datasv.user.UserDAO" parent="baseIbatisDAO1">
<property name="sqlmapNamespace">
<value>user</value>
</property>
</bean>
<bean id="eventsDAO" class="com.cqjk.datasv.events.EventsDAO"
parent="baseIbatisDAO2">
<property name="sqlmapNamespace">
<value>events</value>
</property>
</bean>
<bean id="ddwcDAO" class="com.cqjk.datasv.ddwc.DdwcDAO" parent="baseIbatisDAO2">
<property name="sqlmapNamespace">
<value>ddwc</value>
</property>
</bean>
<bean id="ddwcRyDAO" class="com.cqjk.datasv.ddwcry.DdwcRyDAO"
parent="baseIbatisDAO2">
<property name="sqlmapNamespace">
<value>ddwcry</value>
</property>
</bean>
spring多个数据源配置的更多相关文章
- spring mysql多数据源配置
spring mysql多数据源配置 @Configuration public class QuartzConfig { @Autowired private AutowireJobFactory ...
- Java spring mvc多数据源配置
1.首先配置两个数据库<bean id="dataSourceA" class="org.apache.commons.dbcp.BasicDataSource&q ...
- Spring Boot多数据源配置(二)MongoDB
在Spring Boot多数据源配置(一)durid.mysql.jpa 整合中已经讲过了Spring Boot如何配置mysql多数据源.本篇文章讲一下Spring Boot如何配置mongoDB多 ...
- Spring实现多数据源配置
一.前言 对于小型项目,服务器与数据库是可以在同一台机子上的,但随着业务的庞大与负责,数据库和服务器就会分离开来.同时随着数据量的增大,数据库也要分开部署到多台机子上. 二.Spring配置文件修改 ...
- JAVA spring hibernate 多数据源配置记录
数据源配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// ...
- 三、Spring Boot 多数据源配置
下面一个Java类是已经写好的根据配置文件动态创建多dataSource的代码,其原理也很简单,就是读取配置文件,根据配置文件中配置的数据源数量,动态创建dataSource并注册到Spring中. ...
- Spring Boot Druid数据源配置
package com.hgvip.config; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.su ...
- spring boot多数据源配置(mysql,redis,mongodb)实战
使用Spring Boot Starter提升效率 虽然不同的starter实现起来各有差异,但是他们基本上都会使用到两个相同的内容:ConfigurationProperties和AutoConfi ...
- 21. Spring Boot Druid 数据源配置解析
1.数据源配置属性类源码 package org.springframework.boot.autoconfigure.jdbc; @ConfigurationProperties( prefix = ...
随机推荐
- Node.js:模块
概要:本篇博客主要介绍node.js的模块 1.创建模块 在node.js中创建一个模块非常简单,因为一个文件就是一个模块.我们只需要明白如何从其他文件中获取这个模块.Node.js提供了 expor ...
- C#字符串转INT
Convent.ToInt32(string ) 可以转化字符串 其他 * .tostring(); (int ) char //强制类型转换 不能转化字符串
- hdu_2296_Ring(AC自动机+DP)
题目链接:hdu_2296_Ring 题意: 有m个字符串,每个字符串有一个价值,现在让你组成一个不超过n长度的字符串,使得价值最大 题解: 很明显是在AC自动机上的DP,设dp[i][j]表示当前长 ...
- Linux系统英文切换中文
Centos系统作为开源最优秀的Linux版本,很多时候作为服务器使用.由于很多linux初学者不太习惯字符界面操作.一般都会安装图形界面,可是安装之后发现是英文的怎么设置让系统显示为中文呢?咗嚛本经 ...
- 使用紧凑的序列化器,数倍提升性能 —— ESFramework 4.0 快速上手(11)
在分布式通信系统中,网络传递的是二进制流,而内存中是我们基于对象模型构建的各种各样的对象,当我们需要将一个对象通过网络传递给另一个节点时,首先需要将其序列化为字节流,然后通过网络发送给目标节点,目标节 ...
- inode和文件描述符区别
inode 或i节点是指对文件的索引.如一个系统,所有文件是放在磁盘或flash上,就要编个目录来说明每个文件在什么地方,有什么属性,及大小等.就像书本的目录一样,便于查找和管理.这目录是操作系统需要 ...
- digitalocean更换机房教程
使用本站优惠链接注册digitalocean账户,可获赠10美元digitalocean优惠码.新用户点击create,即可创建一台新的vps,10美元余额足够你使用一台512MB内存的vps长达两月 ...
- DLNA
DLNA最早由索尼.英特尔.微软等提出,全称是DIGITAL LIVING NETWORK ALLIANCE,旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通,其实就是解决电脑和 ...
- Hibernate查询、连接池、二级缓存
Hibernate第三天: 1. 对象状态 2. session缓存 3. lazy懒加载 4. 映射 一对一对映射 组件/继承映射 目标: 一.hibernate查询 二.hibernate对连接池 ...
- jQuery(2)——选择器
选择器 利用jQuery选择器,可以非常便捷和快速地找出特定的DOM元素,然后为它们添加相应的行为.jQuery的行为规则都必须在获取到元素后才能生效. [jQuery选择器的优势] (1)简洁的写法 ...