spring 升级记录

张开发
2026/4/11 9:15:46 15 分钟阅读

分享文章

spring 升级记录
前序我使用的了spring 6.1.6使用框架是springboot mybatis,然后被扫出了下面两个漏洞1Spring Web UriComponentsBuilder URL解析不当漏洞CVE-2024-222432Spring Framework 特定条件下目录遍历漏洞CVE-2024-38819解决方案就是升级spring下面记录一下升级过程一、打开你项目的根 pom.xml1、找到 配置项中的 spring-boot-starter-parent 版本。选择一个已修复漏洞的 Spring Boot 版本。为确保兼容性建议使用最新的稳定版本。根据漏洞修复信息Spring Boot 3.3.x 系列通常对应修复后的 Spring Framework 6.1.x 版本。例如将 spring-boot-starter-parent 的版本升级到 3.3.4 或更高版本。修改后在项目根目录执行 mvn clean installMaven 会自动引入对应版本的 Spring Framework问题即可解决。这里我的版本有3.2.5升级到3.3.4了如下parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactId!--version3.2.5/version--version3.3.4/version/parent2、 升级后运行时报错升级 Spring Boot 到 3.3.4 后出现 NoClassDefFoundError: org/springframework/boot/web/servlet/support/SpringBootServletInitializer主要一种可能原因就是jdk版本低了Spring Boot 3.x 要求 Java 17 或更高版本。如果你的 pom.xml 中仍配置为 Java 1.8请改成17或者21plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdconfigurationsource1.8/sourcetarget1.8/target/configuration/plugin改成plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdconfigurationsource17/sourcetarget17/targetencodingUTF-8/encoding/configuration/plugin3 logback-spring.xml 报错Logging system failed to initialize using configuration fromnulljava.lang.IllegalStateException: Logback configuration error detected: ERRORinch.qos.logback.core.model.processor.ImplicitModelHandler - Could not create component[timeBasedFileNamingAndTriggeringPolicy]oftype[ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP]java.lang.ClassNotFoundException: ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP解决方案你需要修改项目的 Logback 配置文件通常是 src/main/resources 目录下的 logback-spring.xml 或 logback.xml将旧的配置替换为新的方式。步骤一修改滚动策略配置你需要找到配置文件中的 部分并按照下面的示例进行替换。需要修改的旧配置示例rollingPolicyclassch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${LOG_HOME}/%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicyclassch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize10MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicymaxHistory30/maxHistory/rollingPolicy替换为的新配置示例rollingPolicyclassch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicyfileNamePattern${LOG_HOME}/%d{yyyy-MM-dd}.%i.log/fileNamePatternmaxFileSize10MB/maxFileSizemaxHistory30/maxHistorytotalSizeCap3GB/totalSizeCap/rollingPolicy修改说明将 rollingPolicy 的 class 属性改为 ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy。移除整个 标签及其内容。将原来在 triggeringPolicy 中的 标签直接放在 标签内。可选可以添加 来限制所有日志文件的总大小防止磁盘被写满。

更多文章