1. 程式人生 > >spring + mybatis 多資料來源事務

spring + mybatis 多資料來源事務

1.配置Druid資料庫資料來源

<bean id="master_dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<!-- 資料庫基本資訊配置 -->
		<property name="url" value="${masterUrl}" />
		<property name="username" value="${username}" />
		<property name="password" value="${password}" />
		<property name="driverClassName" value="${driverClassName}" />
		<property name="filters" value="${filters}" />
		<!-- 最大併發連線數 -->
		<property name="maxActive" value="${maxActive}" />
		<!-- 初始化連線數量 -->
		<property name="initialSize" value="${initialSize}" />
		<!-- 配置獲取連線等待超時的時間 -->
		<property name="maxWait" value="${maxWait}" />
		<!-- 最小空閒連線數 -->
		<property name="minIdle" value="${minIdle}" />
		<!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
		<!-- 配置一個連線在池中最小生存的時間,單位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
		<property name="validationQuery" value="${validationQuery}" />
		<property name="testWhileIdle" value="${testWhileIdle}" />
		<property name="testOnBorrow" value="${testOnBorrow}" />
		<property name="testOnReturn" value="${testOnReturn}" />
		<property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
		<!-- 開啟removeAbandoned功能 -->
		<property name="removeAbandoned" value="${removeAbandoned}" />
		<!-- 1800秒,也就是30分鐘 -->
		<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
		<!-- 關閉abanded連線時輸出錯誤日誌 -->
		<property name="logAbandoned" value="${logAbandoned}" />
	</bean>從庫資料來源配置
<bean id="slave_dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<!-- 資料庫基本資訊配置 -->
		<property name="url" value="${slaveUrl}" />
		<property name="username" value="${username}" />
		<property name="password" value="${password}" />
		<property name="driverClassName" value="${driverClassName}" />
		<property name="filters" value="${filters}" />
		<!-- 最大併發連線數 -->
		<property name="maxActive" value="${maxActive}" />
		<!-- 初始化連線數量 -->
		<property name="initialSize" value="${initialSize}" />
		<!-- 配置獲取連線等待超時的時間 -->
		<property name="maxWait" value="${maxWait}" />
		<!-- 最小空閒連線數 -->
		<property name="minIdle" value="${minIdle}" />
		<!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
		<!-- 配置一個連線在池中最小生存的時間,單位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
		<property name="validationQuery" value="${validationQuery}" />
		<property name="testWhileIdle" value="${testWhileIdle}" />
		<property name="testOnBorrow" value="${testOnBorrow}" />
		<property name="testOnReturn" value="${testOnReturn}" />
		<property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
		<!-- 開啟removeAbandoned功能 -->
		<property name="removeAbandoned" value="${removeAbandoned}" />
		<!-- 1800秒,也就是30分鐘 -->
		<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
		<!-- 關閉abanded連線時輸出錯誤日誌 -->
		<property name="logAbandoned" value="${logAbandoned}" />
	</bean>

2.配置資料來源


    上面配置了2個數據源,一個主庫一個從庫。