欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年12月01日 11:54:22   投稿:mrr  
項目需要從其他網站獲取數據,因為是臨時加的需求,這篇文章主要介紹了Spring MVC Mybatis多數據源的使用實例解析,需要的朋友可以參考下

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

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

applicationContext.xml

<!-- 多數據源配置 -->
 <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>
 <!-- 動態(tài)配置數據源 -->
 <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

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(設置靜態(tài)變量)

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。

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class DynamicDataSource extends AbstractRoutingDataSource {
 @Override
 protected Object determineCurrentLookupKey() {
  return DataSourceContextHolder.getDbType();
 }
}

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

相關文章

  • Java中利用Alibaba開源技術EasyExcel來操作Excel表的示例代碼

    Java中利用Alibaba開源技術EasyExcel來操作Excel表的示例代碼

    這篇文章主要介紹了Java中利用Alibaba開源技術EasyExcel來操作Excel表的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • mybatis-plus自定義排序的實現

    mybatis-plus自定義排序的實現

    本文主要介紹了mybatis-plus自定義排序的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • springcloud gateway自定義斷言規(guī)則詳解,以后綴結尾進行路由

    springcloud gateway自定義斷言規(guī)則詳解,以后綴結尾進行路由

    這篇文章主要介紹了springcloud gateway自定義斷言規(guī)則詳解,以后綴結尾進行路由,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java Lambda表達式的方法引用和構造器引用實例分析

    Java Lambda表達式的方法引用和構造器引用實例分析

    這篇文章主要介紹了Java Lambda表達式的方法引用和構造器引用,結合實例形式分析了Lambda表達式的方法引用和構造器引用相關原理、用法及操作注意事項,需要的朋友可以參考下
    2019-09-09
  • java基礎入門之IO流

    java基礎入門之IO流

    流是一種抽象概念,它代表了數據的無結構化傳遞。。用來進行輸入輸出操作的流就稱為IO流。換句話說,IO流就是以流的方式進行輸入輸出
    2021-06-06
  • Java中MapStruct映射處理器報錯的問題解決

    Java中MapStruct映射處理器報錯的問題解決

    MapStruct是一個強大的Java映射框架,它能夠在編譯時生成映射代碼,,本文主要介紹了Java中MapStruct映射處理器報錯的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 詳解springboot接口如何優(yōu)雅的接收時間類型參數

    詳解springboot接口如何優(yōu)雅的接收時間類型參數

    這篇文章主要為大家詳細介紹了springboot的接口如何優(yōu)雅的接收時間類型參數,文中為大家整理了三種常見的方法,希望對大家有一定的幫助
    2023-09-09
  • Centos7安裝JDK1.8詳細過程實戰(zhàn)記錄

    Centos7安裝JDK1.8詳細過程實戰(zhàn)記錄

    這篇文章主要給大家介紹了關于Centos7安裝JDK1.8的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-09-09
  • SpringMVC中MultipartFile轉File的兩種方式

    SpringMVC中MultipartFile轉File的兩種方式

    在spring上傳文件中,一般都使用了MultipartFile來接收,但是有需要用到File的地方,本文主要介紹了SpringMVC中MultipartFile轉File的兩種方式,感興趣的可以了解一下
    2022-04-04
  • Spring?Bean創(chuàng)建流程分析講解

    Spring?Bean創(chuàng)建流程分析講解

    很多時候我們需要根據不同的條件在容器中加載不同的Bean,或者根據不同的條件來選擇是否在容器中加載某個Bean,這就是Bean的加載控制,一般我們可以通過編程式或注解式兩種不同的方式來完成Bean的管理
    2023-01-01

最新評論