【电商项目】新手CRUD踩坑记录与问题复盘——查找(分页查询)
·
写这个的时候基本避开了前几篇中描述的错误,测试返回也是200。不过测试分页查询的时候,我仔细查看返回信息的时候发现了一个问题:

这个返回数据没有达到我的预期啊。分页返回 total:0、pages:0,明明有管理员数据但分页总数统计失效。那无疑就是page插件未生效了。
因为返回是200,所以控制台是没有报错信息的。
发现情况后我立即去检查了我的代码:
- 故障现象:PageHelper 分页插件未生效,总条数
total=0,能查出单页数据但是分页计数失效。 - 根因:检查分页拦截器 Bean 的定义位置,发现写在 Controller 内部。
- 原理:Spring 只会在启动类、
@Configuration配置类中解析@Bean注解,Controller 不会实例化其中的 Bean,分页拦截器没有注入 Spring 容器,MyBatis 分页插件无法工作,无法统计总数据量。 - 修复方案:把分页 Bean 配置迁移到 SpringBoot 启动类。
Spring 注解规则:Controller 不承载 Bean 注册,@Bean失效,插件未加载
这确实是我写代码的时候没注意,本人很多东西知识学习理解了但并不是很会运用,理解也不够深入。
此处贴以下page插件代码吧。

// Page插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return mybatisPlusInterceptor;
}
更多推荐



所有评论(0)