北京做网站一般多少钱,网站开发需解决什么问题,临清设计网站,wordpress 退出 跳转springboot 3.3 版本已经正式发布#xff0c;新版本提供了类数据共享#xff08;CDS#xff09;功能#xff0c;通过将类元数据缓存在 Archive#xff08;归档/存档#xff09; 文件中#xff0c;使其可以快速预加载到新启动的 JVM 中#xff0c;从而帮助缩短 JVM 的启…springboot 3.3 版本已经正式发布新版本提供了类数据共享CDS功能通过将类元数据缓存在 Archive归档/存档 文件中使其可以快速预加载到新启动的 JVM 中从而帮助缩短 JVM 的启动时间和内存占用。
闲话少说直接体验。
使用springboot3.3创建项目此处略。
编译应用
我们先把应用打包成jar包mvn clean package 此处假设打包出来的是service.jar 按照官方文档我们需要将一体式jar包提取成可以使用CDS技术的格式使用下面的命令:
java -Djarmodetools -jar service.jar extract执行后目录就变成了 类似下面这样
service├── service.jar├── lib│ ├── ...│ ├── 应用的各种依赖包.jar│ ├── ...这个结构启动方式略有变化变成了执行 java -jar service/service.jar这样就可以运行起来了。
生成CDS归档文件
根据官方说法使用CDS和生成CDS的jdk版本目录等最好一致所以我们直接去后面要运行应用的容器中执行生成CDS存档的命令这样就可以保证环境完全一致。
Dockerfile参考如下
# 基础镜像自己选一个 我这里用了 zulu jdk
FROM azul/zulu-openjdk:21.0.3
# 把刚才生成的应用的整个目录放进来
ADD service /opt/serviceENV TZ Asia/Shanghai
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \ echo ${TZ} /etc/timezone
# 重点1 预生成存档参考 https://docs.spring.io/spring-framework/reference/integration/cds.html
RUN cd /opt/ java -jar -XX:ArchiveClassesAtExitapplication.jsa -Dspring.context.exitonRefresh service/service.jar
# 重点2 运行时使用预生成的存档
ENTRYPOINT [java, -jar, -XX:SharedArchiveFileapplication.jsa, /opt/service/service.jar]经过上面的打包运行时应用就会使用预先生成的类数据不再需要重新加载可以提升启动速度实际效果自行体验哈。