2:seata需要的DataSourceConfig
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DruidDataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
/**
* Seata 是通过代理数据源实现事务分支,所以需要先配置一个数据源的代理,.需要将 DataSourceProxy 设置为主数据源,否则事务无法回滚
*
* @param druidDataSource The DruidDataSource
* @return The default datasource
*/
@Primary
@Bean("dataSource")
public DataSourceProxy dataSource(DruidDataSource druidDataSource) {
return new DataSourceProxy(druidDataSource);
}
}
启动结果:
The dependencies of some of the beans in the application context form a cycle:
storageTblServiceImpl (field protected com.baomidou.mybatisplus.core.mapper.BaseMapper com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.baseMapper)
↓
storageTblDao defined in file [E:\comfirstclouddemo\firstcloud-demo-seat-demo\firstcloud-demo-seat-storage\target\classes\com\firstcloud\demo\service\dao\StorageTblDao.class]
↓
sqlSessionFactory defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]
┌─────┐
| dataSource defined in class path resource [com/firstcloud/demo/config/DataSourceConfig.class]
↑ ↓
| druidDataSource defined in class path resource [com/firstcloud/demo/config/DataSourceConfig.class]
↑ ↓
| org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker
└─────┘
springcloud 项目seata配置DataSourceProxy后与mybatisplus的联合使用产生循环引用 1:pom文件
2:seata需要的DataSourceConfig @Configuration public class DataSourceConfig {
}
启动结果: The dependencies of some of the beans in the application context form a cycle:
storageTblServiceImpl (field protected com.baomidou.mybatisplus.core.mapper.BaseMapper com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.baseMapper) ↓ storageTblDao defined in file [E:\comfirstclouddemo\firstcloud-demo-seat-demo\firstcloud-demo-seat-storage\target\classes\com\firstcloud\demo\service\dao\StorageTblDao.class] ↓ sqlSessionFactory defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class] ┌─────┐ | dataSource defined in class path resource [com/firstcloud/demo/config/DataSourceConfig.class] ↑ ↓ | druidDataSource defined in class path resource [com/firstcloud/demo/config/DataSourceConfig.class] ↑ ↓ | org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker └─────┘