DataBaseConfig中加入事务管理器
DataBaseConfig的详解以及多数据源的配置参见我的上一篇文章
@Configuration
@MapperScan(basePackages={"com.sc.myboot.dao"},sqlSessionFactoryRef = "MySqlSessionFactory1")
public class DataBaseConfig {
@Value("${spring.datasource.type}")
private Class<? extends DataSource> dataSourceType;
@Bean(name = "MyDataSource1")
@ConfigurationProperties(prefix = "data2")
public DataSource getDataSource(){
return DataSourceBuilder.create().type(dataSourceType).build();
}
@Bean(name = "Data1TransactionManager1")
public DataSourceTransactionManager masterTransactionManager() {
return new DataSourceTransactionManager(getDataSource());
}
@Bean(name = "MySqlSessionFactory1")
public SqlSessionFactory masterSqlSessionFactory(@Qualifier("MyDataSource1") DataSource masterDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(masterDataSource);
return sessionFactory.getObject();
}
}
在Service的方法中使用注解@Transactional
在多数据源编程的情况下一定要配置多事务管理器,即一个数据源对应一个事务管理器