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>
 
时间: 2024-08-05 21:50:22

spring多个数据源配置的相关文章

spring boot 多数据源配置(多种数据库)

最近一段时间在使用spring boot开发项目,其中有一个项目用到了多数据源的配置,网上的资料还是不太多,走了好多才找到一个合适的,把自己写的分享一下,做个笔记,以后也许有用,第一次写博客,不好勿喷!! 首先介绍下我的业务场景,此项目用到了两种数据库,一个是mysql,另一个是sqlserver, 首先第一步需要在application.yml中将多数据源的配置信息进行配置, mysql数据源: spring: datasource: driverClassName: com.mysql.jd

spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置

先从persistence.xml开始: <?xml version=”1.0″ encoding=”UTF-8″?><persistence version=”2.1″ xmlns=”http://java.sun.com/xml/ns/persistence” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/persistence

JAVA spring hibernate 多数据源配置记录

数据源配置 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.spri

Spring Boot 多数据源配置

下面一个Java类是已经写好的根据配置文件动态创建多dataSource的代码,其原理也很简单,就是读取配置文件,根据配置文件中配置的数据源数量,动态创建dataSource并注册到Spring中. 代码如下: package org.springboot.sample.config; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import javax.sql.DataSource; i

spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置(二)+Druid连接池

接上一个博文(http://www.loveweir.com/html/18.html),没有数据库连接池,纯粹用jpa的官方链接. 所以这次要加上连接池本文用Druid连接池来实现多数据源的配置. persistence.xml 这个文件可以省略了,全部配置在applicationContext.xml 里面: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www

spring 4+ jpa(hibernate 3/4)+spring mvc 多数据源配置(2)

接上一个博文,没有数据库连接池,纯粹用jpa的官方链接. 所以这次要加上连接池本文用Druid连接池来实现多数据源的配置. persistence.xml 这个文件可以省略了,全部配置在applicationContext.xml 里面: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

Spring+Mybatis多数据源配置

一.配置文件 properties ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://192.168.200.130:3306/test1?useUnicode=true&characterEncoding=UTF-8 ds1.username=hhh ds1.password=123456 ds2.driverClassName=oracle.jdbc.OracleDriver ds2.url=jdbc:mysql:/

Java spring mvc多数据源配置

1.首先配置两个数据库 <bean id="dataSourceA"         class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <proper

IT忍者神龟之Spring+MyBatis多数据源配置实现

最近用到了MyBatis配置多数据源,原以为简单配置下就行了,实际操作后发现还是要费些事的,这里记录下,以作备忘 不多废话,直接上代码,后面会有简单的实现介绍 jdbc和log4j的配置 #定义输出格式 ConversionPattern=%d %-5p [%t] %c - %m%n log4j.rootLogger=DEBUG,Console log4j.logger.com.cnblogs.lzrabbit=DEBUG log4j.logger.org.springframework=ERR