springboot 3.3版本 类数据共享(CDS)提高启动速度 使用方法 Docker打包代码代码
人民网>>社会·法治

springboot 3.3版本 类数据共享(CDS)提高启动速度 使用方法 Docker打包代码代码

2025-06-24 11:50:52 | 来源:人民网
小字号

springboot 3.3 版本已正式发布,新版本提供类数据共享(CDS)功能,类元数据缓存 Archive(归档/归档) ࿰在文件中c;使其能够快速预加载到新启动 JVM 中,从而帮助缩短 JVM 占用启动时间和内存。

闲话少说󿀌直接体验。

闲话少说󿀌直接体验

使用springboot3.3创建项目(此处点)。

编译应用。首先,我们将应用程序打包成jar包:
mvn clean package。假设这里打包的是。
service.jar。

根据官方文件󿀌我们需要将集成jar包提取成可以使用CDS技术的格式,使用以下命令:。java。-Djarmode。= tools。-jar。

service.jar extract。

实施后,目录变成了 类似下面这样的:

service ├── service.jar ├── lib │ ├── ... │ ├── 各种依赖包的应用.jar │ ├── ..。 这种结构启动方式略有变化c;变成执行。java -jar service/service.jar。

,这样就可以运行了。

生成CDS归档文件。

根据官方说法󿀌jdk版本࿰使用CDS和生成CDSc;最好是目录一致的󿀌因此,我们直接执行生成CDS存档的命令,这样可以保证环境完全一致。

Dockerfile参考如下:a;

# 自己选一个基本镜像 我这里用了 zulu jdkFROM azul/zulu-openjdk:21.0.3# 将刚刚生成的应用程序的整个目录放入ADD service /opt/serviceENV TZ Asia/ShanghaiRUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \ && echo ${TZ} > /etc/timezone# 重点1: 预生存档󿀌参考 https://docs.spring.io/spring-framework/reference/integration/cds.htmlRUN cd /opt/ && java -jar -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh service/service.jar# 重点2: 使用预生成的存档ENTRYPOINT运行 ["java", "-jar", "-XX:SharedArchiveFile=application.jsa", "/opt/service/service.jar"]。

上面的包装,应用程序将使用预先生成的类数据,不再需要重新加载󿀌可提高启动速度(实际效果自我体验哈󿂙。上面的包装,应用程序将使用预先生成的类数据,不再需要重新加载󿀌可提高启动速度(实际效果自我体验哈󿂙。

(责编:人民网)

分享让更多人看到