SpringBoot使用Mybatis-Plus分页无效
见注释
@Configuration
@MapperScan(basePackages = {"com.test.collection"}, sqlSessionFactoryRef = "collectionSqlSessionFactory")
public class CollectionMyBatisConfig {@Bean(name = "collection")@ConfigurationProperties(prefix = "spring.datasource.collection")public DataSource dataSource() {return new DruidDataSource();}// 1. 如果配置了自定义的SqlSessionFactory@Bean(name = "collectionSqlSessionFactory")public SqlSessionFactory sqlSessionFactory(@Qualifier("collection") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();com.baomidou.mybatisplus.core.MybatisConfiguration configuration = new com.baomidou.mybatisplus.core.MybatisConfiguration();configuration.setMapUnderscoreToCamelCase(false);bean.setConfiguration(configuration);// 3. 可以选择把拦截器驾到configuration里面bean.setDataSource(dataSource);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/collection/*.xml"));return bean.getObject();}@Bean(name = "collectionTransactionManager")public DataSourceTransactionManager transactionManager(@Qualifier("collection") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean(name = "collectionSqlSessionTemplate")public SqlSessionTemplate sqlSessionTemplate(@Qualifier("collectionSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}// 2. 这个拦截器加了就无效,这应该是加到了默认的SqlSessionFactory里面@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}