主题
修改底座版本号
当前支持JDK17的最新版本号为:1.9.0_17
格式说明:之后会存在两种格式的版本号,如1.9.0,1.9.0_17。若存在后缀_17,表示JDK要求为17;不存在_17后缀,则JDK要求为8。
升级的技术选型
JDK 17
Spring Boot 3.3.5
spring-cloud 2023.0.3
spring-cloud-alibaba 2023.0.1.3
mybatis-plus 3.5.9
knife4j 4.5.0
代码生成
底座版本:存在后缀_17(例:1.9.0_17),基于JDK17进行代码生成;否则基于JDK8进行代码生成。
JDK8项目升级
pom.xml文件
xml
<parent>
<groupId>cn.zjtele.pubinfo.boot</groupId>
<artifactId>pubinfo-boot</artifactId>
<version>jdk17版本,例如1.9.0_17</version>
</parent>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
修改包路径
javax -> jakarta
例如:
java
javax.annotation.Resource -> jakarta.annotation.Resource
javax.validation.Constraint -> jakarta.validation.Constraint
javax.validation.Payload -> jakarta.validation.Payload
javax.annotation.PostConstruct -> jakarta.annotation.PostConstruct
logback-spring.xml
converterClass -> class
xml
<conversionRule conversionWord="clr" class="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" class="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" class="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
yml配置文件
spring.redis -> spring.data.redis
yml
spring:
data:
redis:
host:
port:
password:
database:
Spring Boot自动配置
删除META-INF/spring.factories中的自动配置
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.autoconfig.AutoConfiguration1
新增配置文件META-INF/org.springframework.boot.autoconfigure.AutoConfiguration.imports ,将自动配置类添加到此文件中
com.example.autoconfig.AutoConfiguration1
Dockerfile
Dockerfile
FROM openjdk:17
启动脚本
env.sh
shell
JVM_OPTS=""
JVM_OPTS="${JVM_OPTS} -server -Xms512m -Xmx512m -Xmn24m -Xss256K -XX:MetaspaceSize=128m "
JVM_OPTS="${JVM_OPTS} -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=15 "
JVM_OPTS="${JVM_OPTS} -XX:+UseG1GC"
JVM_OPTS="${JVM_OPTS} -XX:+DoEscapeAnalysis -XX:-UseLargePages "
JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC "
JVM_OPTS="${JVM_OPTS} -XX:HeapDumpPath=${DIR_GC}/dump.hprof -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError "
JVM_OPTS="${JVM_OPTS} -Xlog:gc*:${DIR_GC}/gc.log:time,tid,tags:filecount=100,filesize=100m"
env.bat
bat
set JVM_OPTS=
set JVM_OPTS=%JVM_OPTS% -server -Xms512m -Xmx512m -Xmn24m -Xss256K -XX:MetaspaceSize=128m
set JVM_OPTS=%JVM_OPTS% -XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=15
set JVM_OPTS=%JVM_OPTS% -XX:+UseG1GC
set JVM_OPTS=%JVM_OPTS% -XX:+DoEscapeAnalysis -XX:-UseLargePages
set JVM_OPTS=%JVM_OPTS% -XX:+DisableExplicitGC
set JVM_OPTS=%JVM_OPTS% -XX:HeapDumpPath=%DIR_GC%\dump.hprof -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError
set JVM_OPTS=%JVM_OPTS% -Xlog:gc*:${DIR_GC}\gc.log:time,tid,tags:filecount=100,filesize=100m