Spring-boot配置Mybatis多数据源

先上Mybatis配置类:


@Configuration
@MapperScan(basePackages = "cn.test.dao.dmp", sqlSessionTemplateRef = "testSqlSessionTemplate")
public class TestDataSourceConfig {

	@Bean(name = "testDataSource")
	@ConfigurationProperties(prefix = "spring.datasource.test")
	public DataSource testDataSource() {
		return DataSourceBuilder.create().build();
	}

	@Bean(name = "testSqlSessionFactory")
	public SqlSessionFactory testSqlSessionFactory(@Qualifier("testDataSource") DataSource dataSource) throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		bean.setDataSource(dataSource);
		bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mybatis/test/*.xml"));
		return bean.getObject();
	}

	@Bean(name = "testTransactionManager")
	public DataSourceTransactionManager testTransactionManager(@Qualifier("testDataSource") DataSource dataSource) {
		return new DataSourceTransactionManager(dataSource);
	}

	@Bean(name = "testSqlSessionTemplate")
	public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("testSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
		return new SqlSessionTemplate(sqlSessionFactory);
	}
}

一层一层注入,先创建DataSource,扫描application.properties的配置自动创建

然后分别注入到事务和SqlSessionFactory里

最后配置一下SqlSessionTemplate

因为是多数据源,每个bean最好都配置一下name,防止重复,其他数据源也是这么配置,修改下扫描地址,DataSource就可以了

声明事务时最好加上名称 比如 @Transactional("testTransactionManager")

 

转载于:https://my.oschina.net/foreverZx/blog/674168

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值