<?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>
spring 配置多個資料來源的檔案
相關文章
- Spring多資料來源配置Spring
- Spring配置多資料來源Spring
- 使用Spring Boot配置多個資料來源 - UdithSpring Boot
- Spring Boot 配置多資料來源Spring Boot
- Spring Boot 多資料來源配置Spring Boot
- Spring boot 如何快速的配置多個 Redis 資料來源Spring BootRedis
- Spring系列之多個資料來源配置Spring
- 多資料來源配置
- Spring+MyBatis多資料來源配置實現SpringMyBatis
- 基於xml的Spring多資料來源配置和使用XMLSpring
- MyBatis配置多資料來源MyBatis
- web 配置多資料來源Web
- Spring-Boot 多資料來源配置+動態資料來源切換+多資料來源事物配置實現主從資料庫儲存分離Springboot資料庫
- 【教程】Spring+Mybatis環境配置多資料來源SpringMyBatis
- 基於Spring Boot與Spring Data JPA的多資料來源配置Spring Boot
- 基於註解的Spring多資料來源配置和使用Spring
- spring配置檔案中分別使用多個properties檔案Spring
- spring-mybatis專案搭建(支援多資料來源)SpringMyBatis
- Spring多資料來源獲取Spring
- SpringBoot 的多資料來源配置Spring Boot
- 多個資料來源的問題
- Spring是如何支援多資料來源的Spring
- Spring全家桶--單資料來源的配置Spring
- springboot多資料來源配置Spring Boot
- springBoot 多資料來源配置Spring Boot
- SpringBoot配置多資料來源Spring Boot
- Spring Boot 2.x基礎教程:MyBatis的多資料來源配置Spring BootMyBatis
- 談一談 Spring-Mybatis 在多資料來源配置上的坑SpringMyBatis
- 談一談Spring-Mybatis在多資料來源配置上的坑SpringMyBatis
- Spring Boot 2.x基礎教程:Spring Data JPA的多資料來源配置Spring Boot
- Spring系列 之資料來源的配置 資料庫 資料來源 連線池的區別Spring資料庫
- Spring 的AbstractRoutingDataSource實現多資料來源Spring
- Spring Boot + Mybatis 多資料來源配置實現讀寫分離Spring BootMyBatis
- SpringBoot 配置多資料來源 MyBatisSpring BootMyBatis
- SpringMVC連線多資料來源配置SpringMVC
- springbootdruidmybatis多資料來源配置Spring BootUIMyBatis
- 基於註解的Spring多資料來源配置和使用(非事務)Spring
- Spring多資料來源管理實現原理Spring