java 连接2个数据源_Spring 配置多个数据源 并实现动态切换

应用一

主数据源和应用数据源(代码中手动切换数据源)

1.jdbc.properties(连接两个库)jdbc.user=root jdbc.password=123456 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/survey?rewriteBatchedStatements=true log.url=jdbc:mysql://localhost:3306/survey_log?rewriteBatchedStatements=true

2.Spring配置文件的配置

3.定义一个类继承AbstractRoutingDataSource实现determineCurrentLookupKey方法,该方法可以实现数据库的动态切换,如下(方法返回的数据源的key值 根据key值去配响应的数据源)public class SurveyRouterDataSource extends AbstractRoutingDataSource{ @Override protected Object determineCurrentLookupKey() { //尝试从当前线程获取令牌 String token = RouterToken.getToken(); //检测令牌是否等于日志数据源对应的键 if(RouterToken.DATASOURCE_LOG.equals(token)){ //当前线程上的令牌,在使用过后需要移除 //避免影响当前线程内其他的数据库操作 RouterToken.removeToken(); //如果是日志数据源对应的键,将日志数据源的键返回 return RouterToken.DATASOURCE_LOG; } //如果不是日志数据源对应的键则返回null采用默认的数据源(主数据源) return null; } }

4.将路由器数据源的key值绑定到本地线程中/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值