Mybatis配置多数据源

一. Spring配置多数据源

image

二. Spring配置数据源

image

三. 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)配置切点

image

切点setDataSource表示当执行com.wbl.service包下所有类的所有方法,都会执行切面。因为在service调用了dao层的所有操作,所以需要在进入dao层之前更换数据源。

(2)配置切面

image

当调用的是外部数据源对应的service时,就切换数据源为otherDataSource,对于其他Service则切换为DataSource。

posted @ 2016-04-27 11:17  bloodHunter  阅读(298)  评论(0编辑  收藏  举报