春天多数据源配置实现方法实例分析

  

本文实例讲述了春天多数据源配置实现方法。分享给大家供大家参考,具体如下:

  

在网上找到的配置多数据源的方法。

  

<强> 1。扩展 <代码> org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource>   

实现代码

        进口org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;   公开课DynamicDataSource延伸AbstractRoutingDataSource {   @Override   保护对象determineCurrentLookupKey () {//TODO自动生成方法存根   返回DbContextHolder.getDbType ();   }   }      之前      

<强> 2。实现一个线程安全的DbContextHolder类。

        公开课DbContextHolder {   私有静态最终ThreadLocal contextHolder=new ThreadLocal ();   公共静态孔隙setDbType(字符串dbType)   {   contextHolder.set (dbType);   }/* *   *取得dbtype类型   * @return   */公共静态字符串getDbType ()   {   字符串str=(字符串)contextHolder.get ();   如果(null==str | |”“.equals (str))   str=?”;   返回str;   }   公共静态孔隙clearDbType ()   {   contextHolder.remove ();   }   }      之前      

<强> 3。修改春天的配置文件。

        & lt; !——动态选择数据源——比;   & lt; bean id=笆菰础崩?皌ecamo.core.utils.DynamicDataSource”比;   & lt;属性名=皌argetDataSources”比;   & lt;映射键式="以"比;   & lt;输入键=?”value-ref=癲s1/比;   & lt;输入键=" 2 " value-ref=癲s2 "/比;   & lt;/map>   & lt;/property>   & lt;属性名=" defaultTargetDataSource " ref=癲s1/比;   & lt;/bean>   & lt; !——数据源定义——比;   & lt; bean id=" ds1”class=皁rg.apache.commons.dbcp.BasicDataSource销毁方法=肮乇铡北?   & lt;属性名=" driverClassName " value=" https://www.yisu.com/zixun/$ {jdbc.driverClassName} "/比;   & lt;属性名=" url " value=" https://www.yisu.com/zixun/$ {jdbc.url} "/比;   & lt;属性名="用户名" value=" https://www.yisu.com/zixun/$ {jdbc.username} "/比;   & lt;属性名="密码" value=" https://www.yisu.com/zixun/$ {jdbc.password} "/比;   & lt;/bean>   & lt; bean id=" ds2”类=皁rg.apache.commons.dbcp.BasicDataSource销毁方法”=肮乇铡北?   & lt;属性名=" driverClassName " value=" https://www.yisu.com/zixun/$ {jdbcOrcale.driverClassName} "/比;   & lt;属性名=" url " value=" https://www.yisu.com/zixun/$ {jdbcOrcale.url} "/比;   & lt;属性名="用户名" value=" https://www.yisu.com/zixun/$ {jdbcOrcale.username} "/比;   & lt;属性名="密码" value=" https://www.yisu.com/zixun/$ {jdbcOrcale.password} "/比;   & lt;/bean>      之前      

<>强4。切换数据源方法。

  

在服务方法之前调用

  

<代码> DbContextHolder.setDbType(“2”); 表示使用第二个数据源。

  

更多关于java相关内容感兴趣的读者可查看本站专题:《春天框架入门与进阶教程》、《java数据结构与算法教程》、《java操作DOM节点技巧总结》,《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》

  

希望本文所述对大家java程序设计有所帮助。

春天多数据源配置实现方法实例分析