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