如何在spring配置多个数据源
小弟刚开始学习spring方面的内容,遇到一个问题,我在一个项目中涉及到很多的数据库,想在spring中配置多个数据源如何操作呢。我的配置文件是这样的 在我的application.properties 有
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8jdbc.url1=jdbc:mysql://localhost/test1?useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=123456hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- Connection Info --> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- Connection Pooling Info --> <property name="initialSize" value="5" /> <property name="maxActive" value="100" /> <property name="maxIdle" value="30" /> <property name="maxWait" value="1000" /> <property name="poolPreparedStatements" value="false" /> <property name="defaultAutoCommit" value="false" /> </bean>
public class DynamicDataSource extends AbstractRoutingDataSource {
//static Logger log = Logger.getLogger("DynamicDataSource");
@Override
protected Object determineCurrentLookupKey() {
// TODO
return DbContextHolder.getDbType();
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
// TODO Auto-generated method stub
return false;
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
// TODO Auto-generated method stub
return null;
}
}
测试程序:
DbContextHolder.setDbType("1");
UserDomain od = this.testService.queryUserAccount("admin");
System.out.println("username=="+od.getName());
DbContextHolder.setDbType("0");
d = this.testService.queryUserAccount("admin");