一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - Spring MVC Mybatis多數據源的使用實例解析

Spring MVC Mybatis多數據源的使用實例解析

2020-07-09 10:41java教程網 JAVA教程

項目需要從其他網站獲取數據,因為是臨時加的需求,這篇文章主要介紹了Spring MVC Mybatis多數據源的使用實例解析,需要的朋友可以參考下

項目需要從其他網站獲取數據,因為是臨時加的需求,在開始項目時沒想到需要多數據源

于是百度了一下,發現只需要改動一下Spring 的applicationContext.xml文件和編寫三個工具類就可以完美實現

applicationContext.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!-- 多數據源配置 -->
 <bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="${jdbc.driverClassName}" />
  <property name="url" value="${jdbc.url}" />
  <property name="username" value="${jdbc.username}" />
  <property name="password" value="" />
 </bean>
 <bean id="ds2" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="" />
  <property name="url" value="" />
  <property name="username" value="" />
  <property name="password" value="" />
 </bean>
 <!-- 動態配置數據源 -->
 <bean id="dataSource" class="com.test.utils.DynamicDataSource">//這里是你項目里DynamicDataSource.java的路徑
  <property name="targetDataSources">
   <map key-type="java.lang.String">
    <entry value-ref="ds_admin" key="ds1"></entry>
    <entry value-ref="ds_partner" key="ds2"></entry>
   </map>
  </property>
  <!-- 默認使用ds1的數據源 -->
  <property name="defaultTargetDataSource" ref="ds_admin"></property> 
 </bean>

DataSourceContextHolder.java

?
1
2
3
4
5
6
7
8
9
10
11
12
public class DataSourceContextHolder {
 private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
 public static void setDbType(String dbType) {
  contextHolder.set(dbType);
 }
 public static String getDbType() {
  return ((String) contextHolder.get());
 }
 public static void clearDbType() {
  contextHolder.remove();
 }
}

DataSourceType.java(設置靜態變量)

?
1
2
3
4
5
6
public class DataSourceType {
 // 默認數據庫
 public static final String SOURCE_ADMIN = "ds1";
 // 第二個數據庫,在applicationContext.xml里的id
 public static final String SOURCE_PARTNER = "ds2";
}

接下來這個是關鍵DynamicDataSource.java 它繼承了AbstractRoutingDataSource中的抽象方法determineCurrentLookupKey是實現數據源的route的核心.這里對該方法進行Override。

?
1
2
3
4
5
6
7
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class DynamicDataSource extends AbstractRoutingDataSource {
 @Override
 protected Object determineCurrentLookupKey() {
  return DataSourceContextHolder.getDbType();
 }
}

以上所述是小編給大家介紹的Spring MVC Mybatis多數據源的使用實例解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美丝袜foot job | 亚洲福利一区二区精品秒拍 | 543精品视频 | 色男人网| 欧美人妖大啪啪 | 久久无码人妻中文国产 | 亚洲精品视频导航 | 隔壁的漂亮邻居hd中文 | 五月天婷婷网亚洲综合在线 | 香蕉tv国产在线永久播放 | 青青草原国产在线 | 91精品啪在线观看国产日本 | 日韩高清无砖砖区2022 | 秋霞一级成人欧美理论 | 暖暖在线日本 | 高清国产精品久久 | 日本三级免费看 | 欧美精品综合一区二区三区 | 日韩在线免费 | 精品国产免费 | 我和子伦系列小说 | 91热国产 | 韩国最新三级网站在线播放 | 亚洲国产精品综合久久一线 | 国产婷婷高清在线观看免费 | 91亚洲精品丁香在线观看 | 窝窝午夜理伦影院 | 青青草国产免费久久久91 | 美女扒开腿让男生桶爽漫画 | 国产精自产拍久久久久久 | 思思玖玖| 男女福利视频 | 久久精品国产清白在天天线 | 五月天色综合 | 免费特黄视频 | 色综合久久夜色精品国产 | 美国69xxxx59| 精品国产一区二区三区国产馆 | 久久久影院亚洲精品 | 女人爽到喷水的视频免费 | 狠狠色综合久久婷婷 |