博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis配置多数据源(利用spring的AbstractRoutingDataSource)
阅读量:4668 次
发布时间:2019-06-09

本文共 2455 字,大约阅读时间需要 8 分钟。

主要是利用了spring的AbstractRoutingDataSource。

直接上配置了:

  1. spring-mybatis.xml

 

MultipleDataSource.java
public class MultipleDataSource extends AbstractRoutingDataSource {    @Override    protected Object determineCurrentLookupKey() {        // TODO Auto-generated method stub        return DataSourceTypeManager.get();    }}
DataSourceTypeManager.java(为了避免多个线程间造成并发问题,用了线程本地变量)
public class DataSourceTypeManager {    //    public static final String DS_BIO = "dataSource";    //    public static final String DS_MODEL = "dataSource2";    //    public static final String DS_ORACLE_RD = "dataSource3";    private static final ThreadLocal
dataSourceKey = new ThreadLocal
(){ /* @Override protected String initialValue(){ return DS_SUNGBIO; }*/ }; public static void setDataSourceKey(String dataSource) { dataSourceKey.set(dataSource); } public static String get(){ return dataSourceKey.get(); } public static void set(String dataSourceType){ dataSourceKey.set(dataSourceType); } public static void reset(){ dataSourceKey.set(DS_BIO); } public static void cleanDataSource(){ dataSourceKey.remove(); }}

使用方法:

使用前,手动写:

DataSourceTypeManager.setDataSourceKey(DataSourceTypeManager.DS_MODEL);

嫌麻烦的话,也可以像如下参考文章,配置注解,然后增加aop:

http://www.cnblogs.com/davidwang456/p/4318303.html

转载于:https://www.cnblogs.com/grey-wolf/p/6962869.html

你可能感兴趣的文章
电容计算公式
查看>>
vue阿里上传图片报400错误
查看>>
Python基础之函数
查看>>
课堂练习--单元测试
查看>>
嵌入式 探讨父子线程、进程终止顺序不同产生的结果_skdkjxy_新浪博客
查看>>
【机器学习】如何成为当下合格的算法工程师
查看>>
vuex 学习总结及demo
查看>>
MySQL高可用架构故障自动转移插件MHA
查看>>
lnmp之nginx1.10.2安装
查看>>
recv send 阻塞和非阻塞
查看>>
网络丢包分析
查看>>
打印LIS
查看>>
剑指offer第2章学习(2)
查看>>
java后台验证码的生成
查看>>
Bootstrap辅助类
查看>>
vue项目的骨架及常用组件介绍
查看>>
Spring使用外部的配置文件
查看>>
ctype
查看>>
jsp 修饰 Request 及Response
查看>>
HDU 2389 Rain on your Parade / HUST 1164 4 Rain on your Parade(二分图的最大匹配)
查看>>