激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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多數據源的使用實例解析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产69精品久久久久99尤 | 色婷婷久久一区二区 | 神马久久蜜桃 | 羞羞视频免费观看网站 | 欧美在线日韩 | 性生活视频一级 | 日本一区二区不卡在线 | 欧美伦理一区二区 | 中文字幕在线免费 | 精品一区久久久 | 黄色三级三级三级 | 久久精品视频一区二区三区 | 国产一区二区视频精品 | 成人在线视频免费观看 | 亚洲福利在线视频 | 免费看污视频在线观看 | 91亚洲精品一区二区福利 | 49vvv| 特黄一区二区三区 | 黄色大片在线免费观看 | 性欧美日本 | 亚洲精久| 黄色大片免费看 | 97干色| 欧美日韩免费在线观看视频 | 久欧美| 国产精品99久久久久久大便 | 欧美雌雄另类xxxxx | 2023av在线视频 | 久久不射电影网 | 666sao| 成人国产综合 | 最新中文字幕在线视频 | 欧产日产国产精品v | 毛片免费在线观看视频 | 国产一区二区三区视频观看 | 国产 视频 一区二区 | 亚洲午夜免费 | 黄色网电影 | a视频在线看 | 蜜桃视频网站www |