標籤:
一. Spring配置多資料來源
二. Spring配置資料來源
三. MultipleDataSource的實現
1: package com.wbl.modal;
2:
3: import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
4:
5: /**
6: * Created with Simple_love
7: * Date: 2016/4/26.
8: * Time: 11:12
9: */
10: public class MultipleDataSource extends AbstractRoutingDataSource{
11:
12: private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();
13:
14: public static void setDataSourceKey(String dataSource) {
15: dataSourceKey.set(dataSource);
16: }
17:
18: @Override
19: protected Object determineCurrentLookupKey() {
20: return dataSourceKey.get();
21: }
22: }
MultipleDataSource實現AbstractRoutingDataSource抽象類別,然後實現了determineCurrentLookupKey方法,這個方法用於選擇具體使用targetDataSources中的哪一個資料來源
四.利用Spring的AOP實現資料來源的自動切換
(1)配置切點
切點setDataSource表示當執行com.wbl.service包下所有類的所有方法,都會執行切面。因為在service調用了dao層的所有操作,所以需要在進入dao層之前更換資料來源。
(2)配置切面
當調用的是外部資料源對應的service時,就切換資料來源為otherDataSource,對於其他Service則切換為DataSource。
Mybatis配置多資料來源