在很多项目中,用到的数据源可能不止一个,这样的话就需要我们掌握配置多数据源的方法了。
@Configuration
@MapperScan(basePackages = "${该数据源对应接口所在的包}",sqlSessionTemplateRef = "SqlSessionTemplate")
public class DataBaseAccess {
@Bean("datasource")
@ConfigurationProperties(prefix="${数据源的配置信息}")
public DataSource setDataSource(){
return DruidDataSourceBuilder.create().build();
}
@Bean("transactionManager")
public DataSourceTransactionManager setTransactionManager(@Qualifier("datasource") DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
@Bean("SqlSessionFactory")
public SqlSessionFactory setSqlSessionFactory(@Qualifier("datasource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
//这个配置是该数据源对应的mapper地址
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/*.xml"));
//该bean还可以设置其他配置,配置文件有的这边都可以设置
return bean.getObject();
}
@Bean("SqlSessionTemplate")
public SqlSessionTemplate setTemplate(@Qualifier("SqlSessionFactory") SqlSessionFactory sqlSessionFactory){
return new SqlSessionTemplate(sqlSessionFactory);
}
}
上面就是配置多数据源的方法,这样的话mapperscan所扫描的包里面的接口就可以像平时我们用的dao一样使用了。