多数据源:基于Springboot+MybatisPlus实现多数据源+多数据源的事务管理 2020-12-06 - 简书 (jianshu.com)
@Configuration
public class MybatisPlusConfig {
@Bean(name = "globalConfig")
public GlobalConfig globalConfig(@Qualifier("myBatisPlusMetaObjectHandler") MyBatisPlusMetaObjectHandler metaObjectHandler) {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setMetaObjectHandler(metaObjectHandler);
return globalConfig;
}
@Bean
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource,
@Qualifier("globalConfig") GlobalConfig globalConfig) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
//添加分页功能================================================================================================
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
sqlSessionFactory.setPlugins(interceptor);
sqlSessionFactory.setGlobalConfig(globalConfig);
return sqlSessionFactory.getObject();
}
@Bean
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@Primary
public DataSourceTransactionManager dataSourceTransactionManager(@Qualifier("dataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
}