Skip to content

修改底座版本号

当前支持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