Spring框架JDBC包提供了一个抽象类AbstractRoutingDataSource提供了动态切换数据库的基础方法。我们仅仅需要实现一个简单的数据源选择算法就可以轻松的利用Spring框架实现数据源切换了。
Spring支持每次被操作的单数据源的事务。
1.继承AbstractRoutingDataSource并实现方法determineCurrentLookupKey()
1 package dev.tinyz.datasource; 2 3 import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; 4 5 /** 6 * Created by TinyZ on 2014/7/28. 7 */ 8 public class MultiDataSource extends AbstractRoutingDataSource { 9 @Override 10 protected Object determineCurrentLookupKey() { 11 return MultiContextHolder.getDataSourceType(); 12 } 13 }