国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

SpringMVC配置雙數(shù)據(jù)源

2019-11-10 17:27:52
字體:
供稿:網(wǎng)友

1.在xml中配置對應(yīng)的bean

<!--數(shù)據(jù)源dataSourceLocal--><bean id="dataSourceLocal" class="org.apache.commons.dbcp.BasicDataSource"> <PRoperty name="driverClassName" value="${jdbc.className}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="passWord" value="${jdbc.password}" /></bean><!--數(shù)據(jù)源dataSource137--><bean id="dataSource137" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.localDataBase.className}" /> <property name="url" value="${jdbc.localDataBase.url}" /> <property name="username" value="${jdbc.localDataBase.username}" /> <property name="password" value="${jdbc.localDataBase.password}" /></bean><!--將數(shù)據(jù)源引入的dataSource--><bean id="dataSource" class="com.simple.common.dataconfig.DynamicDataSource"> <!--將兩個(gè)數(shù)據(jù)源引入到Map<dataSourceName,dataSource>--> <property name="targetDataSources"> <map key-type="java.lang.String"> <entry value-ref="dataSourceLocal" key="dataSourceLocal"></entry> <entry value-ref="dataSource137" key="dataSource137"></entry> </map> </property> <!--指定默認(rèn)使用的數(shù)據(jù)源--> <property name="defaultTargetDataSource" ref="dataSourceLocal"> </property></bean>

2.自己實(shí)現(xiàn)DynamicDataSource這個(gè)bean

package com.simple.common.dataconfig;import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;//需要繼承AbstractRoutingDataSource,通過determineCurrentLookupKey方法設(shè)置當(dāng)前數(shù)據(jù)源public class DynamicDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { return DataSourceContextHolder.getDBType(); }}

3.封裝數(shù)據(jù)源

package com.simple.common.dataconfig;public class DataSourceContextHolder { private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); //設(shè)置使用的數(shù)據(jù)源,dbType為bean的名字(xml中配置了dataSourceLocal,dataSource137) public static void setDBType(String dbType) { contextHolder.set(dbType); } //獲取當(dāng)前使用的數(shù)據(jù)源 public static String getDBType() { return ((String) contextHolder.get()); } //使用默認(rèn)數(shù)據(jù)源 public static void clearDBType() { contextHolder.remove(); } }

4.實(shí)際調(diào)用用的類

package com.simple.common.dataconfig;//設(shè)置使用的數(shù)據(jù)源,獲取使用的數(shù)據(jù)源public class DataSourceGetSet { // Oracle數(shù)據(jù)庫 private static final String WEBADMORACLE = "dataSource137"; // 本地?cái)?shù)據(jù)源--MySQL數(shù)據(jù)庫 private static final String LOCALMYSQL = "dataSourceLocal"; /** * 使用137環(huán)境數(shù)據(jù)源 * @return 配置成功返回true */ public static boolean SetDataSourceTO137() { DataSourceContextHolder.setDBType(WEBADMORACLE); String DBType = DataSourceContextHolder.getDBType(); if (WEBADMORACLE.equals(DBType)) { return true; } return false; } /** * 使用本地環(huán)境數(shù)據(jù)源 * @return 配置成功返回true */ public static boolean SetDataSourceTOLocal() { DataSourceContextHolder.setDBType(LOCALMYSQL); String DBType = DataSourceContextHolder.getDBType(); if (LOCALMYSQL.equals(DBType)) { return true; } return false; } /** * 獲取當(dāng)前數(shù)據(jù)源名稱 */ public static String GetDBType(){ return DataSourceContextHolder.getDBType(); }}

如果需要配置更多數(shù)據(jù)源,同理可知!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新郑市| 博野县| 锦屏县| 彭山县| 达尔| 柞水县| 北流市| 高碑店市| 甘谷县| 宿松县| 黑水县| 互助| 海宁市| 嘉善县| 伊春市| 扬州市| 寻乌县| 苍山县| 都昌县| 衡水市| 刚察县| 绥化市| 泽州县| 壤塘县| 中西区| 富锦市| 潮州市| 临城县| 平远县| 师宗县| 淄博市| 拉萨市| 乐至县| 九寨沟县| 景洪市| 湖口县| 昂仁县| 阜新| 新巴尔虎右旗| 清徐县| 普陀区|