spring 配置多个数据源的文件
2016-11-08 15:15
393 查看
<?xml version="1.0" encoding="UTF-8"?>
<!-- Repository and Service layers -->
<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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
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.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
<!-- ========================= Repository RESOURCE DEFINITIONS ========================= -->
<bean id="slave" class="org.apache.tomcat.jdbc.pool.DataSource">
<property name="driverClassName" value="${jdbc.mysql.Driver}"/>
<property name="url" value="${slave.connection}"/>
<property name="username" value="${slave.username}"/>
<property name="password" value="${slave.password}"/>
<!--公共配置属性 -->
<property name="maxActive" value="100"/>
<property name="initialSize" value="10"/>
<property name="minIdle" value="10"/>
<property name="jdbcInterceptors" value="${tomcat.jdbc.pool.jdbcInterceptors}"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="select 1"/>
<property name="testOnReturn" value="false"/>
<property name="validationInterval" value="30000"/>
<property name="timeBetweenEvictionRunsMillis" value="5000"/>
<property name="maxWait" value="15000"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="60"/>
<property name="logAbandoned" value="false"/>
<property name="minEvictableIdleTimeMillis" value="30"/>
</bean>
<bean id="master" class="org.apache.tomcat.jdbc.pool.DataSource">
<property name="driverClassName" value="${jdbc.mysql.Driver}"/>
<property name="url" value="${master.connection}"/>
<property name="username" value="${master.username}"/>
<property name="password" value="${master.password}"/>
<!--公共配置属性 -->
<property name="maxActive" value="100"/>
<property name="initialSize" value="10"/>
<property name="minIdle" value="10"/>
<property name="jdbcInterceptors" value="${tomcat.jdbc.pool.jdbcInterceptors}"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="select 1"/>
<property name="testOnReturn" value="false"/>
<property name="validationInterval" value="30000"/>
<property name="timeBetweenEvictionRunsMillis" value="5000"/>
<property name="maxWait" value="15000"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="60"/>
<property name="logAbandoned" value="false"/>
<property name="minEvictableIdleTimeMillis" value="30"/>
</bean>
<bean id="oldmemberdb" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="${oldmemberdb.connection}"/>
<property name="username" value="${oldmemberdb.username}" />
<property name="password" value="${oldmemberdb.password}" />
</bean>
<bean id="dataSource" class="db.DynamicDataSource">
<property name="master" ref="master"/>
<property name="slaves">
<list>
<ref bean="slave"/>
</list>
</property>
</bean>
<!-- ibatis3 工厂类 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
<property name="mapperLocations"
value="classpath:/jdbc/uc/dao/*.xml"/>
<property name="typeAliasesPackage" value="uc.jdbc.uc.po"/>
</bean>
<bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="oldmemberdb"/>
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
<property name="mapperLocations"
value="classpath:/uc/jdbc/uc/dao/TestMapper.xml"/>
<property name="typeAliasesPackage" value="uc.jdbc.uc.po"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="uc.jdbc.uc.olddao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_1"></property>
</bean>
<bean class="MapperScannerConfigurer">
<property name="basePackage" value="uc.jdbc.uc.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<!-- 定义单个jdbc数据源的事务管理器 -->
<bean id="transactionManager"
class="DynamicDataSourceTransactionManager">
<!-- class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 以 @Transactional 标注来定义事务 -->
<tx:annotation-driven transaction-manager="trasactionManager"
proxy-target-class="true"/>
<bean id="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
<!--ISOLATION_DEFAULT 表示由使用的数据库决定 -->
<property name="isolationLevelName" value="ISOLATION_DEFAULT"/>
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
<property name="timeout" value="300"/>
</bean>
<bean id="transactionTemplateNew"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
<!--ISOLATION_DEFAULT 表示由使用的数据库决定 -->
<property name="isolationLevelName" value="ISOLATION_DEFAULT"/>
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW"/>
<property name="timeout" value="300"/>
</bean>
</beans>
<!-- Repository and Service layers -->
<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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
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.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
<!-- ========================= Repository RESOURCE DEFINITIONS ========================= -->
<bean id="slave" class="org.apache.tomcat.jdbc.pool.DataSource">
<property name="driverClassName" value="${jdbc.mysql.Driver}"/>
<property name="url" value="${slave.connection}"/>
<property name="username" value="${slave.username}"/>
<property name="password" value="${slave.password}"/>
<!--公共配置属性 -->
<property name="maxActive" value="100"/>
<property name="initialSize" value="10"/>
<property name="minIdle" value="10"/>
<property name="jdbcInterceptors" value="${tomcat.jdbc.pool.jdbcInterceptors}"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="select 1"/>
<property name="testOnReturn" value="false"/>
<property name="validationInterval" value="30000"/>
<property name="timeBetweenEvictionRunsMillis" value="5000"/>
<property name="maxWait" value="15000"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="60"/>
<property name="logAbandoned" value="false"/>
<property name="minEvictableIdleTimeMillis" value="30"/>
</bean>
<bean id="master" class="org.apache.tomcat.jdbc.pool.DataSource">
<property name="driverClassName" value="${jdbc.mysql.Driver}"/>
<property name="url" value="${master.connection}"/>
<property name="username" value="${master.username}"/>
<property name="password" value="${master.password}"/>
<!--公共配置属性 -->
<property name="maxActive" value="100"/>
<property name="initialSize" value="10"/>
<property name="minIdle" value="10"/>
<property name="jdbcInterceptors" value="${tomcat.jdbc.pool.jdbcInterceptors}"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="select 1"/>
<property name="testOnReturn" value="false"/>
<property name="validationInterval" value="30000"/>
<property name="timeBetweenEvictionRunsMillis" value="5000"/>
<property name="maxWait" value="15000"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="60"/>
<property name="logAbandoned" value="false"/>
<property name="minEvictableIdleTimeMillis" value="30"/>
</bean>
<bean id="oldmemberdb" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="${oldmemberdb.connection}"/>
<property name="username" value="${oldmemberdb.username}" />
<property name="password" value="${oldmemberdb.password}" />
</bean>
<bean id="dataSource" class="db.DynamicDataSource">
<property name="master" ref="master"/>
<property name="slaves">
<list>
<ref bean="slave"/>
</list>
</property>
</bean>
<!-- ibatis3 工厂类 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
<property name="mapperLocations"
value="classpath:/jdbc/uc/dao/*.xml"/>
<property name="typeAliasesPackage" value="uc.jdbc.uc.po"/>
</bean>
<bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="oldmemberdb"/>
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
<property name="mapperLocations"
value="classpath:/uc/jdbc/uc/dao/TestMapper.xml"/>
<property name="typeAliasesPackage" value="uc.jdbc.uc.po"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="uc.jdbc.uc.olddao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_1"></property>
</bean>
<bean class="MapperScannerConfigurer">
<property name="basePackage" value="uc.jdbc.uc.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<!-- 定义单个jdbc数据源的事务管理器 -->
<bean id="transactionManager"
class="DynamicDataSourceTransactionManager">
<!-- class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 以 @Transactional 标注来定义事务 -->
<tx:annotation-driven transaction-manager="trasactionManager"
proxy-target-class="true"/>
<bean id="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
<!--ISOLATION_DEFAULT 表示由使用的数据库决定 -->
<property name="isolationLevelName" value="ISOLATION_DEFAULT"/>
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/>
<property name="timeout" value="300"/>
</bean>
<bean id="transactionTemplateNew"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="transactionManager"/>
<!--ISOLATION_DEFAULT 表示由使用的数据库决定 -->
<property name="isolationLevelName" value="ISOLATION_DEFAULT"/>
<property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW"/>
<property name="timeout" value="300"/>
</bean>
</beans>
相关文章推荐
- 用Spring管理Hibernate连接多个数据源配置文件
- Spring配置文件中加载数据源几种方式
- Log4j配置文件位置+Spring数据源配置文件位置
- Spring-boot中利用外部配置文件生成数据源
- Spring的数据源引用问题,拆分配置文件
- 在Spring的 applicationContext.xml文件中配置数据源
- Spring配置文件所有类型的数据源dataSource
- Spring配置文件所有类型的数据源dataSource
- Spring中applicationContext.xml配置文件中数据库数据源配置
- java 用properties文件配置spring数据源,用spring的JdbcTemplate的queryForList查数据
- Spring 配置数据源及properties配置文件加载
- Log4j配置文件位置+Spring中数据源配置文件位置
- spring与jpa整合 简化persistence.xml配置文件 使用属性文件 数据源dbcp访问数据库
- Spring-boot中利用外部配置文件生成数据源
- Spring配置文件中配置数据源(dataSource)
- 通过环境变量设置WEB项目数据源(Spring)及其项目配置文件路径,动态更新数据源及项目配置
- 在Spring-Mybatis-Restful中配置多数据源的properties文件
- spring mvc+mybatis配置多数据源文件
- spring+mybatis 数据源读取不到配置文件的值
- Spring配置文件配置数据源