beans.xml
DynamicDataSource.java
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;import org.apache.commons.dbcp.BasicDataSource;import org.apache.commons.lang.StringUtils;import org.apache.log4j.Logger;import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;public class DynamicDataSource extends AbstractRoutingDataSource { Logger log = Logger.getLogger("DynamicDataSource"); private Map
DBCenter.java
import java.util.HashMap;import java.util.Map;import org.apache.commons.dbcp.BasicDataSource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import zh.Dao.CampusDao; @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath*:beans.xml"}) public class DBCenter { @Autowired private CampusDao campusDao; @Test public void testCampusAll() { System.out.println("傻逼"); System.out.println(campusDao.findAll().get(0)); DbContextHolder.setDBType("dataSource2"); System.out.println(campusDao.findAll().get(0)); DbContextHolder.setDBType("dataSource1"); System.out.println(campusDao.findAll().get(0)); }