SpringBoot整合多数据源dataSourceConfig文件
@Configuration
@MapperScan(basePackages = DataSourceKjunConfig.BASEPACKAGES, sqlSessionFactoryRef = DataSourceKjunConfig.SQLSESSIONFACTORY)
public class DataSourceKjunConfig {
static final String BASEPACKAGES = "com.kjun.dao.kjun";
static final String SQLSESSIONFACTORY = "kjunSqlSessionFactory";
static final String DATASOURCE = "kjunDataSource";
static final String PREFIX = "spring.datasource.kjun";
static final String TRANSACTIONMANAGER = "kjunTransactionManager";
static final String SQLSESSIONTEMPLATE = "kjunSqlSessionTemplate";
@Bean(name = DataSourceKjunConfig.DATASOURCE)
@Primary
@ConfigurationProperties(prefix = DataSourceKjunConfig.PREFIX)
public DataSource kjunDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = DataSourceKjunConfig.SQLSESSIONFACTORY)
@Primary
public SqlSessionFactory kjunSqlSessionFactory(@Qualifier(DataSourceKjunConfig.DATASOURCE) DataSource dataSource)
throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
return sessionFactoryBean.getObject();
}
/**
* 设置数据库kjun的事务管理器
*
*/
@Bean(name = DataSourceKjunConfig.TRANSACTIONMANAGER)
@Primary
public DataSourceTransactionManager kjunTransactionManner(
@Qualifier(DataSourceKjunConfig.DATASOURCE) DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = DataSourceKjunConfig.SQLSESSIONTEMPLATE)
@Primary
public SqlSessionTemplate kjunSqlSessionTemplate(
@Qualifier(DataSourceKjunConfig.SQLSESSIONFACTORY) SqlSessionFactory sessionFactory) throws Exception {
return new SqlSessionTemplate(sessionFactory);
}
}