读写分离(数据源动态切换)

数据源在spring加载启动完成之后,需要根据不同的业务场景做动态的切换。

解决思路

1、借助spring提供的抽象类AbstractRoutingDataSource,通过继承抽象类,并覆盖determineCurrentLookupKey方法。

2、增加Aspect环绕服务,在before里面设置好数据源本地线程变量、after之后清理掉数据源本地线程变量。

3、每次获取的时候,若数据源本地线程变量为空,则默认走主dataSource。

注意事项

1、Aspect和继承的AbstractRoutingDataSource类之间执行顺序的问题通过设置order来控制。

2、测试动态数据源切换通过启动系统来测试,不是单元测试,单元测试有的时候会失效。

上一篇:Dubbo源码Debug-Aop解析


下一篇:利用SD-WAN改善HCI与云之间的联系