引言
在一个 Maven 项目中,在 common 模块中进行 MyBatisPlus 的分页配置,在 service 模块中进行业务逻辑的实现,常常会遇到配置了不生效的问题。尤其是 mybatis-plus 分页配置不生效问题,百度了一波之后,基本上都是说是开启新旧版插件的区别,然而,仔细检查了n遍,还是觉得分页配置根本没有问题。在配置的位置断点调试,启动服务进行分页测试,发现服务根本没有扫描到 MyBatisPlus 分页配置,这才是问题的根本所在!!!接下来,我们就此问题进行解决~~~
问题解决:
1、Mybatis-plus 版本:3.4.2
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
2、MyBatisPlusConfig 代码:
package com.example.common.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
/**
* 开启分页插件
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
3、【关键】在 service 启动类 SpringBootApplication 中添加 Bean 的扫描路径。
(1)问题解决前的启动类代码:
package com.example.fleetbasic;
import com.example.common.application.SpringSelfApplication;
import com.example.common.constant.ApplicationNameConstant;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages = {"com.example.fleetbasic.mapper"})
public class FleetBasicApplication {
public static void main(String[] args) {
SpringSelfApplication.run(ApplicationNameConstant.FLEET_BASIC_APPLICATION_NAME,FleetBasicApplication.class,args);
}
}
(2)在注解 @SpringBootApplication 中添加 Mybatis-plus 分页配置 和 业务代码 的扫描路径:
package com.example.fleetbasic;
import com.example.common.application.SpringSelfApplication;
import com.example.common.constant.ApplicationNameConstant;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = {"com.example.common.config","com.example.fleetbasic"})
@MapperScan(basePackages = {"com.example.fleetbasic.mapper"})
public class FleetBasicApplication {
public static void main(String[] args) {
SpringSelfApplication.run(ApplicationNameConstant.FLEET_BASIC_APPLICATION_NAME,FleetBasicApplication.class,args);
}
}
(3)重新进行分页测试,成功!
【如果你觉得文章有用,记得点赞、收藏、关注哦!你的点赞是我创作的无限动力】