我的联系方式
邮箱occumacy@163.com
2025-04-27 17:11:43Java
1、包名替换
jakarta->javax
com.alibaba.fastjson->com.alibaba.fastjson2
3、springmvc路径匹配策略有调整
主要涉及拦截器的配置:
//之前这样配置,可以过滤/portal下的所有了路径,升级后这种写法不支持了
interceptorRegistration.excludePathPatterns("/portal/**");
建议增加配置回复之前的策略
# 恢复旧版路径匹配策略
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
2、mybatis-plus+pagehelper升级 此处是重点!!!花了两天时间才解决!!!
SpringBoot2.5.3对应mybatis-plus-boot-starter版本为3.5.7,对应pagehelper-spring-boot-starter版本为2.1.0
但是!!!
mybatis-plus-boot-starter和pagehelper中的jsqlparser版本冲突,mybatis-plus-boot-starter是4.9,pagehelper是4.7
启动程序会报错,重点是这个错误报的一头雾水,没有任何有用的提示,最后debugger调试半天,发现是mybatis的mapper类实例化时报错,大概意思是没找到mapper的bean,其实就是jsqlparser版本冲突的问题,mapper-bean没有注入成功:
java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
最后解决方案如下:
<properties>
<!-- 单独指定mybatis,mybatis.spring,jsqlparser的版本 -->
<mybatis.version>3.5.16</mybatis.version>
<mybatis.spring.version>3.0.3</mybatis.spring.version>
<jsqlparser.version>4.9</jsqlparser.version>
</properties>
<!-- 显式引入 JSqlParser -->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>${jsqlparser.version}</version>
</dependency>
<!-- MyBatis-Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.7</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
<!-- 排除 PageHelper 可能引入的旧版本 JSqlParser -->
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<!-- 注意此处是agehelper-spring-boot-starter不是pagehelper,不然读不到springboot对应pagehelper的配置 -->
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>2.1.0</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<!-- 排除 PageHelper 可能引入的旧版本 JSqlParser -->
<exclusion>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
</exclusion>
<exclusion>
<artifactId>mybatis-spring</artifactId>
<groupId>org.mybatis</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- 强制指定 MyBatis 和 MyBatis-Spring 版本 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>