大致思路
创建用于标志数据源的自定义注解
通过配置切面,在操作数据库的方法之前,扫描该方法的注解所配置的数据源名称,将名称存储在一个代表当前线程变量工具类
创建AbstarctRoutingDataSource子类DynamicDataSourc,重写determineCurrentLookupKey()方法,把当前线程变量的工具类存储的数据源名称返回即可。
在spring配置文件中,将多个数据源配置到我们创建的DynamicDataSourc
一、配置双数据源 xml配置文件
master.driver=com.mysql.cj.jdbc.Driver
master.url=jdbc:mysql://10.70.20.81:3306/test
master.username=root
master.password=root
slave.driver=com.mysql.cj.jdbc.Driver
slave.url=jdbc:mysql://10.70.20.155:3306/test
slave.username=root
slave.password=root
<!-- master数据源 -->
<beanid="masterDataSource"class="com.alibaba.druid.pool.DruidDataSource">
<propertyname="driverCla