在不少項目中,用到的數據源可能不止一個,這樣的話就須要咱們掌握配置多數據源的方法了。sql
@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同樣使用了。bash