當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringMVC 中xml 配置多数据源
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC 中xml 配置多数据源
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1,配置jdbc.properties
jdbc.driver_one=... jdbc.url_one=..... jdbc.username_one=... jdbc.password_one=..jdbc.driver_two=... jdbc.url_two=..... jdbc.username_two=... jdbc.password_two=..jdbc.initialSize=..... jdbc.maxActive=.... .....2,數據源xml 配置
...<!-- 讀取配置文件信息 --><context:property-placeholder ignore-unresolvable="true" location="classpath:*.properties"/><bean name="dataSource" class="com.hsq.datasource.MultipleDataSource"><property name="targetDataSources"><map key-type="java.lang.String"><entry key="dataSource_one" value-ref="dataSource_one" /><entry key="dataSource_two" value-ref="dataSource_two" /></map></property><!-- 配置默認數據源1--><property name="defaultTargetDataSource" ref="dataSource_one" /></bean><bean id="dataSource_one" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><!-- 數據庫基本配置 --><property name="driverClassName" value="${jdbc.driver_one}" /><property name="url" value="${jdbc.url_one}" /><property name="username" value="${jdbc.username_one}" /><property name="password" value="${jdbc.password_one}" /><!-- 初始化連接數量 --><property name="initialSize" value="${jdbc.initialSize}"/><!-- 最大并發連接數量 --><property name="maxActive" value="${jdbc.maxActive}"/><!-- 最小空閑連接數 --><property name="minIdle" value="${jdbc.minIdle}"/><!-- 配置獲取連接等待超時的時間 --><property name="maxWait" value="${jdbc.maxWait}" /><!-- 超過時間限制是否回收 --><property name="removeAbandoned" value="${jdbc.removeAbandoned}" /><!-- 超過時間限制多長 --><property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" /><!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" /><!-- 配置一個連接在池中最小生存的時間,單位是毫秒 --><property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" /><!-- 用來檢測連接是否有效的sql,要求是一個查詢語句--><property name="validationQuery" value="${jdbc.validationQuery}" /><!-- 申請連接的時候檢測 --><property name="testWhileIdle" value="${jdbc.testWhileIdle}" /><!-- 申請連接時執行validationQuery檢測連接是否有效,配置為true會降低性能 --><property name="testOnBorrow" value="${jdbc.testOnBorrow}" /><!-- 歸還連接時執行validationQuery檢測連接是否有效,配置為true會降低性能 --><property name="testOnReturn" value="${jdbc.testOnReturn}" /><property name="logAbandoned" value="true" /><!-- 配置監控統計攔截的filters,wall用于防止sql注入,stat用于統計分析 --><property name="filters" value="stat,log4j" /></bean><bean id="dataSource_two" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><!-- 數據庫基本配置 --><property name="driverClassName" value="${jdbc.driver_two}" /><property name="url" value="${jdbc.url_two}" /><property name="username" value="${jdbc.username_two}" /><property name="password" value="${jdbc.password_two}" /><!-- 初始化連接數量 --><property name="initialSize" value="${jdbc.initialSize}"/><!-- 最大并發連接數量 --><property name="maxActive" value="${jdbc.maxActive}"/><!-- 最小空閑連接數 --><property name="minIdle" value="${jdbc.minIdle}"/><!-- 配置獲取連接等待超時的時間 --><property name="maxWait" value="${jdbc.maxWait}" /><!-- 超過時間限制是否回收 --><property name="removeAbandoned" value="${jdbc.removeAbandoned}" /><!-- 超過時間限制多長 --><property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" /><!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" /><!-- 配置一個連接在池中最小生存的時間,單位是毫秒 --><property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" /><!-- 用來檢測連接是否有效的sql,要求是一個查詢語句--><property name="validationQuery" value="${jdbc.validationQuery}" /><!-- 申請連接的時候檢測 --><property name="testWhileIdle" value="${jdbc.testWhileIdle}" /><!-- 申請連接時執行validationQuery檢測連接是否有效,配置為true會降低性能 --><property name="testOnBorrow" value="${jdbc.testOnBorrow}" /><!-- 歸還連接時執行validationQuery檢測連接是否有效,配置為true會降低性能 --><property name="testOnReturn" value="${jdbc.testOnReturn}" /><property name="logAbandoned" value="true" /><!-- 配置監控統計攔截的filters,wall用于防止sql注入,stat用于統計分析 --><property name="filters" value="stat,log4j" /></bean> ...3.用枚舉類列舉數據源:
public enum DbSource {one("dataSource_one"), two("dataSource_two");private String value;DbSource(String value) {this.value = value;}public String getValue() {return value;}pulic void setValue(){this.value = value;} }4.數據源配置
/*** 配置mybatis多數據源,使用 MultipleDataSource.setDataSourceKey("") 配置數據源**/ public class MultipleDataSource extends AbstractRoutingDataSource {private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();public static void setDataSourceKey(String dataSource) {dataSourceKey.set(dataSource);}public static String getDataSourceKey() {return dataSourceKey.get();}@Overrideprotected Object determineCurrentLookupKey() {return dataSourceKey.get();} }5,切換方式
try {MultipleDataSource.setDataSourceKey(DbSource.two.getValue());......} finally {MultipleDataSource.setDataSourceKey(DbSource.one.getValue());}?
轉載于:https://www.cnblogs.com/xiaohu1218/p/10187097.html
總結
以上是生活随笔為你收集整理的SpringMVC 中xml 配置多数据源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL-数据库增删改查
- 下一篇: gradle idea java ssm