配置多个数据源(demo只配置2个)
spring:
datasource:
write:
url: jdbc:mysql://ip:3306/writeDataBase?useUnicode=true&characterEncoding=utf-8&useSSL=true
username: zhy
password: xxx
driver-class-name: com.mysql.jdbc.Driver
read:
url: jdbc:mysql://xxx:3306/readDataBase?useUnicode=true&characterEncoding=utf-8&useSSL=true
username: zhy
password: xxx
driver-class-name: com.mysql.jdbc.Driver
2创建维护当前线程使用那个库的threadlocal工具类
自定义设置sessionFaction
重写springdatasource的determineCurrentLookupKey方法,返回值为用那个库,上一步维护到setTargetDataSources的map-key
springboot启动类排除mybatis自动装配,加上对应扫描,因为没用mybatis的自动装配,mapper扫描包需要手动配置
然后用aop切换当前线程的determineCurrentLookupKey就行了,demo直接手动替换,没有写aop
使用读库
使用写库