问题:
项目配置单数据源的时候,mybatis-plus分页插件正常使用,配置多数据源的时候,mybatis-plus分页插件失效。
处理:
多数据源的配置需要用代码实现,而不是使用默认的properties配置
@Bean(name = "mysqlSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {
##注意: Mybatis plus分页插件配置必须使用MybatisSqlSessionFactoryBean ,否则分页失效
## MybatisSqlSessionFactoryBean 是为了解决扫包的时候无法扫描mybatis-plus的mapper的问题。
final MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
## 重点
MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
mybatisSqlSessionFactoryBean.setConfiguration(mybatisConfiguration);
mybatisSqlSessionFactoryBean.setDataSource(dataSource);
mybatisSqlSessionFactoryBean.setPlugins(new Interceptor[]{paginationInterceptor()});
## 指定enum类的扫描
mybatisSqlSessionFactoryBean.setTypeEnumsPackage("com.test.constant");
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resourcePatternResolver.getResources("classpath*:mapper/*Mapper.xml");
mybatisSqlSessionFactoryBean.setMapperLocations(resources);
return mybatisSqlSessionFactoryBean.getObject();
}