@Configuration
@MapperScan(basePackages = {"com.spicel.service"},sqlSessionFactoryRef = "baseSqlSessionFactory")
public class DataSourceConfig {
/**
* 注入数据源
* @return DataSource
*/
@Bean(name = "baseDataSource")
@ConfigurationProperties(prefix = "spring.datasource.data")
public DataSource buildDataSource() {
return DataSourceBuilder.create().build();
}
/**
* 注入session工厂
* @param dataSource dataSource
* @return SqlSessionFactory
* @throws Exception 异常
*/
@Bean(name = "baseSqlSessionFactory")
public SqlSessionFactory buildSqlSessionFactory(@Qualifier("baseDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("mapper/*.xml"));
return sessionFactory.getObject();
}
/**
* 注入事务管理器
* @param dataSource dataSource
* @return DataSourceTransactionManager
*/
@Bean(name = "baseTransactionManager")
public DataSourceTransactionManager buildTransactionManager(@Qualifier("baseDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}