博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动切换数据源
阅读量:6690 次
发布时间:2019-06-25

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

hot3.png

背景: spring+mybatis项目

数据源:

applicationContext.xml

  MultipleDataSource实现:

package com.cnblogs.lzrabbit;import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;public class MultipleDataSource extends AbstractRoutingDataSource {    private static final ThreadLocal
dataSourceKey = new InheritableThreadLocal
(); public static void setDataSourceKey(String dataSource) { dataSourceKey.set(dataSource); } @Override protected Object determineCurrentLookupKey() { return dataSourceKey.get(); }}

使用SpringAOP方式实现自动切换:

package com.cnblogs.lzrabbit;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.springframework.stereotype.Component;@Component@Aspectpublic class MultipleDataSourceAspectAdvice {    @Around("execution(* com.cnblogs.lzrabbit.*.*(..))")    public Object doAround(ProceedingJoinPoint jp) throws Throwable {        if (jp.getTarget() instanceof MySqlMapper) {            MultipleDataSource.setDataSourceKey("mySqlDataSource");        } else if (jp.getTarget() instanceof SqlServerMapper) {            MultipleDataSource.setDataSourceKey("sqlServerDataSource");        }        return jp.proceed();    }}

 

转载于:https://my.oschina.net/jamescasta/blog/1926327

你可能感兴趣的文章
卸载已经安装的rpm包
查看>>
Postgres study reminder ,lesson 1
查看>>
Explain中的filtered列
查看>>
趣图:当计算机可以更新的时候
查看>>
贝格尔编排法-java
查看>>
retain、assign、strong、weak
查看>>
Java String处理入门 - null或空值的判断处理
查看>>
文件 跨域上传
查看>>
CentOS7 安装 rabbitmq
查看>>
有效的java程序片段
查看>>
Java类排序_浅析
查看>>
图文详解如何修改git已提交记录的邮箱?
查看>>
配置SSH
查看>>
storm翻译(2):Concepts
查看>>
Exchange 2013文档之三:Exchange Server 2013在Windows 2012平台下部署
查看>>
Shell获取局域网指定IP地址的MAC和主机名,并插入数据库
查看>>
mysql安装记录文档
查看>>
Vmware /CentOS访问Windows中的文件
查看>>
pg9.5升级 到 pg11 的步骤
查看>>
09可靠消息最终一致性方案2--独立消息服务
查看>>