@EnableFeignClients与mybatisplus3.2冲突,导致分页失效

本文介绍了解决Feign与MyBatis Plus在Spring Boot项目中冲突的方法,并详细记录了使用PageHelper实现分页功能的过程及解决PageHelper与MyBatis Plus冲突的具体步骤。

 

红色问题,黑色解决方法。个人记录

首先是发现Feign无法注入,添加路径后解决  @EnableFeignClients("接口所在的路径") 

但加入后跟mybatisplus3.2的分页产生了冲突,导致分页失效。

最后想到了用pagehelper做分页

结果 pagehelper 跟mybatisplus3.2 也发生了冲突

下面这个是解决 pagehelper 跟mybatisplus3.2冲突的,下面记录了下,详情可以去这个网址看

https://blog.csdn.net/u012280292/article/details/99678037

 

pom.xml

<dependency>
		    <groupId>com.github.pagehelper</groupId>
		    <artifactId>pagehelper</artifactId>
		    <version>5.1.10</version>
		</dependency>
		<!-- pagehelper 依赖 -->
		<dependency>
		    <groupId>com.github.jsqlparser</groupId>
		    <artifactId>jsqlparser</artifactId>
		    <version>2.
### MyBatisPlusPageHelper分页插件冲突解决方案 当在一个项目中同时引入MyBatisPlusPageHelper时,可能会因为两者都实现了SQL拦截器而导致分页功能失效。以下是针对该问题的具体分析以及解决方案。 #### 1. 冲突原因 MyBatisPlusPageHelper均通过实现`Interceptor`接口来拦截SQL执行并完成分页逻辑。如果两者的拦截器同时生效,则可能导致SQL语句被重复修改或覆盖,从而引发分页条件丢失等问题[^1]。 #### 2. 解决方案一:排除多余依赖 可以通过Maven配置文件中的`<exclusions>`标签移除可能引起冲突的依赖项。例如,在引入`pagehelper-spring-boot-starter`时,可以显式排除其内部包含的`mybatis`版本,以避免MyBatisPlus自带的`mybatis`版本发生冲突: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> <exclusions> <exclusion> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </exclusion> </exclusions> </dependency> ``` 上述方法能够有效减少因版本不一致引起的潜在问题[^3]。 #### 3. 解决方案二:调整拦截器优先级 为了使两种分页方式共存而不互相干扰,可通过设置拦截器顺序的方式指定哪个插件先处理SQL请求。具体操作如下: - 配置`mybatis-plus.configuration.interceptor-order`属性定义拦截器加载次序; - 或者手动注册自定义拦截器链表,并明确声明各组件的作用范围。 例如,在Spring Boot环境中可尝试以下代码片段控制流程走向: ```java @Bean public Interceptor interceptorChain() { Interceptor[] interceptors = new Interceptor[]{ new PageHelper(), new PaginationInterceptor() }; return new Interceptor.Chain(interceptors); } ``` 注意此处需依据实际业务需求灵活调整数组内的排列组合形式[^2]。 #### 4. 解决方案三:选用单一工具库 考虑到长期维护成本技术栈统一性的因素,建议尽可能只保留一种分页机制作为默认选项。对于新开发模块推荐采用MyBatisPlus内置支持的功能;而对于遗留代码则逐步迁移至相同框架下运行,以此彻底消除二者间的矛盾关系。 --- ### 总结 以上介绍了三种应对策略分别适用于不同场景下的开发者群体。无论是优化现有架构还是重构整个工程体系结构都需要充分权衡利弊后再做决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值