本文实例讲述了春天多数据源配置实现方法。分享给大家供大家参考,具体如下:
在网上找到的配置多数据源的方法。
<强> 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程序设计有所帮助。
春天多数据源配置实现方法实例分析