若没空探究原理可直接跳转到“实现方式:注解+切面”目录
数据源切换方法
Spring对数据源的管理类似于策略模式,不懂策略模式也没关系,其实就是有一个全局的键值对,类型是Map<String, DataSource>
。当JDBC
操作数据库之时,会根据不同的key值选择不同的数据源。而这个key值可以放到方法的注解里。
所以切换数据源的思路就是让JDBC
在获取数据源时根据key获取到要切换的数据源。
JDBC
提供了AbstractRoutingDataSource
抽象类,类名意思是数据源路由,该类提供了一个抽象方法determineCurrentLookupKey()
,切换数据源时JDBC
会调用这个方法获取数据源的key,所以只需要实现该方法,改变该方法中返回的key值即可。
大约 5 分钟