使用Spring配置多数据源
一、工作原理
利用Spring提供的AbstractRoutingDataSource抽象类配置多个数据源。在运行时利用SpringAOP 在事物开启之前,根据某个key值动态的改变数据源。
二、配置多个数据源
1.配置第一个数据源
2.配置第二个数据源
3.配置properties文件
三、java代码
1.扩展Spring的AbstractRoutingDataSource抽象类,实现动态数据源。
2.AbstractRoutingDataSource 抽象类增加一个线程安全的ThreadLocal
3.配置动态数据源
将DynamicDataSource Bean加入到Spring的上下文xml配置文件中去,同时配置DynamicDataSource的targetDataSources(多数据源目标)属性的Map映射
4.配置sqlSessionFactory 工厂
5.通过SpringAOP 动态改变每个service 所使用的数据源
Ⅰ写切入方法
写一个类实现MethodInterceptor 接口,实现invoke 方法
Ⅱ配置文件
Ⅲ使用
对需要更换数据源的业务方法增加dataSource注解指定选用数据源
Datasource.java 源码