背景
spring mvc 多数据源还有一种实现方式,利用 AOP 进行手动切换。
基本原理是,我们自己定义一个 DataSource 类 DynamicDataSource ,来继承 AbstractRoutingDataSource ,然后在配置文件中向 DynamicDataSource 注入两个数据源,然后通过 AOP 来灵活配置。
配置文件
applicationContext.xml
<jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/data"></jee:jndi-lookup>
<jee:jndi-lookup id="dataSource2" jndi-name="java:jboss/datasources/data2"></jee:jndi-lookup>
<bean id="dynamicDataSource" class="com.telehot.tpdev.datasource.DynamicDataSource">
<!-- 通过key-value关联数据源 -->
<property name="targetDataSources">
<map>
<entry value-ref="dataSource" key="dataSource"></entry>
<entry value-ref="dataSource2" key="dataSource2"></entry>
</map>