chore(deps): Spring Boot 2.5.15→2.7.18 + MyBatis Plus 3.5.5→3.5.16
升级内容: - Spring Boot 2.5.15 → 2.7.18 (含 Spring Security 5.7, Tomcat 9.0.96) - MyBatis Plus 3.5.5 → 3.5.16 (含 mybatis-plus-jsqlparser 拆分模块) - JSqlParser 4.5 → 5.2 (MyBatis Plus 3.5.9+ 要求) - PageHelper 1.4.7 → 2.1.1 (兼容 JSqlParser 5.x) - mysql:mysql-connector-java → com.mysql:mysql-connector-j (Spring Boot 2.7 BOM 变更) 兼容性修复: - FieldStrategy.IGNORED → FieldStrategy.NEVER (3.5.16 重命名) - ScanOptionsBuilder → ScanOptions.scanOptions() 工厂方法 - saveOrUpdate(entity, wrapper) → saveOrUpdate(entity) (wrapper 签名移除) - PermitAllUrlProperties: getBean(class) → getBean(name,class) + null 检查 - application.yml: 添加 spring.mvc.pathmatch.matching-strategy=ant-path-matcher - application.yml: 禁用 springfox (与 Spring Boot 2.7 不兼容) 验证结果: - ✅ mvn clean package -DskipTests BUILD SUCCESS - ✅ 登录接口 HTTP 200 - ✅ 分页查询 (数据字典 326 条, 用户 84 条) - ✅ 路由信息 (22 个顶级菜单) - ✅ 流程引擎 (Flowable) 正常初始化
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.openhis</groupId>
|
||||
<artifactId>openhis-server</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.core</groupId>
|
||||
<artifactId>core-framework</artifactId>
|
||||
@@ -77,12 +78,13 @@
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- JSQLParser - 用于MyBatis Plus -->
|
||||
<!-- MyBatis-Plus JSQLParser 插件 (3.5.9+ 拆分) -->
|
||||
<dependency>
|
||||
<groupId>com.github.jsqlparser</groupId>
|
||||
<artifactId>jsqlparser</artifactId>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-jsqlparser</artifactId>
|
||||
<version>${mybatis-plus.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
</project>
|
||||
|
||||
@@ -29,22 +29,24 @@ public class PermitAllUrlProperties implements InitializingBean, ApplicationCont
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
|
||||
RequestMappingHandlerMapping mapping = applicationContext.getBean("requestMappingHandlerMapping", RequestMappingHandlerMapping.class);
|
||||
Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();
|
||||
|
||||
map.keySet().forEach(info -> {
|
||||
// Spring Boot 2.7+ 部分 RequestMappingInfo 的 patternsCondition 可能为 null
|
||||
if (info.getPatternsCondition() == null) return;
|
||||
HandlerMethod handlerMethod = map.get(info);
|
||||
|
||||
// 获取方法上边的注解 替代path variable 为 *
|
||||
Anonymous method = AnnotationUtils.findAnnotation(handlerMethod.getMethod(), Anonymous.class);
|
||||
Optional.ofNullable(method)
|
||||
.ifPresent(anonymous -> Objects.requireNonNull(info.getPatternsCondition().getPatterns())
|
||||
.ifPresent(anonymous -> info.getPatternsCondition().getPatterns()
|
||||
.forEach(url -> urls.add(RegExUtils.replaceAll(url, PATTERN, ASTERISK))));
|
||||
|
||||
// 获取类上边的注解, 替代path variable 为 *
|
||||
Anonymous controller = AnnotationUtils.findAnnotation(handlerMethod.getBeanType(), Anonymous.class);
|
||||
Optional.ofNullable(controller)
|
||||
.ifPresent(anonymous -> Objects.requireNonNull(info.getPatternsCondition().getPatterns())
|
||||
.ifPresent(anonymous -> info.getPatternsCondition().getPatterns()
|
||||
.forEach(url -> urls.add(RegExUtils.replaceAll(url, PATTERN, ASTERISK))));
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user