您的位置:首页 > 编程语言 > Java开发

使用SpringBoot+mybatis整合多数据源时的DataSourceConfig文件

2018-12-07 22:33 597 查看

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";

/**
* 配置数据库kjun的数据源
*
* @return
*/
@Bean(name = DataSourceKjunConfig.DATASOURCE)
@Primary//表示以这个数据源为项目启动是的默认数据源,再多数据源项目中,必须确定主要数据源,否则启动时会由于不知道哪个是主要数据源而导致启动失败。
@ConfigurationProperties(prefix = DataSourceKjunConfig.PREFIX)
public DataSource kjunDataSource() {
return DataSourceBuilder.create().build();
}

/**
* 配置对应于数据源kjun的sqlSessionFactory
*
* @param dataSource
* @return
* @throws Exception
*/
@Bean(name = DataSourceKjunConfig.SQLSESSIONFACTORY)
@Primary
public SqlSessionFactory kjunSqlSessionFactory(@Qualifier(DataSourceKjunConfig.DATASOURCE) DataSource dataSource)
throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
// 若通过配置文件实现mybatis的整合,需要设置配置文件的地址
//        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
//                .getResources("classpath:com/kjun/mapper/*.xml"));
return sessionFactoryBean.getObject();
}

/**
* 设置数据库kjun的事务管理器
*
*/
@Bean(name = DataSourceKjunConfig.TRANSACTIONMANAGER)
@Primary
public DataSourceTransactionManager kjunTransactionManner(
@Qualifier(DataSourceKjunConfig.DATASOURCE) DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}

/**
* 创建sqlSessionTemplate
*
*/
@Bean(name = DataSourceKjunConfig.SQLSESSIONTEMPLATE)
@Primary
public SqlSessionTemplate kjunSqlSessionTemplate(
@Qualifier(DataSourceKjunConfig.SQLSESSIONFACTORY) SqlSessionFactory sessionFactory) throws Exception {
return new SqlSessionTemplate(sessionFactory);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: