SpringBoot文档之构建包的阅读笔记
[*]Packaging Spring Boot Applications
Efficient Deployments
[*]Efficient Deployments
默认情况下,基于SpringBoot框架开辟应用时,构建插件spring-boot-maven-plugin将项目打包为fat jar。
执行如下下令,解压构建得到的jar文件。
java -Djarmode=tools -jar my-app.jar extract执行如下下令,使用解压后的jar文件,启动SpringBoot应用。
java -jar my-app/my-app.jar执行如下下令,查看工具的帮助。
java -Djarmode=tools -jar my-app.jar help extract
参考资料
[*]深入明确SpringBoot加载FatJar原理
[*]Maven插件打fatjar的一些技巧
[*]打胖瘦jar包的两种方式(idea与maven插件),多图详解
[*]啥?你没听过SpringBoot的FatJar?
[*]maven打包fat-jar注意的问题
[*]jar的官方文档
[*]Jar 包签名
CDS
[*]Class Data Sharing
CDS是JVM的特性,有助于缩短Java应用的启动时间,并减少内存占用量。
java -Djarmode=tools -jar my-app.jar extract --destination application
cd application
java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar my-app.jar
java -XX:SharedArchiveFile=application.jsa -jar my-app.jar
[*]JVM CDS
[*]How To CDS
[*]Spring CDS
使用CDS时的注意事项:
[*]创建application.jsa时使用的JVM,和运行Java应用加载application.jsa时使用的的JVM,二者需要保持一致,即版本号、安装路径等需要保持一致。
[*]Java应用启动时指定的类路径,需要使用jar文件的清单,制止使用目录大概通配符。
[*]Java应用加载的jar文件,需要保持一致。
[*]Java应用加载的jar文件的时间戳,需要保持一致。
增长JVM选项-Xlog:class+load:file=cds.log,通过检查cds.log的内容,确认CDS优化的结果。
增长JVM选项-Xshare:on,确认CDS是否正常启用。
[*]Builder Configuration
官方文档
[*]Class Data Sharing
[*]JEP 310: Application Class-Data Sharing
[*]JEP 350: Dynamic CDS Archives
[*]Application Class-Data Sharing
[*]Dynamic CDS Archive
网页的锚点有点问题。
参考资料
[*]JAVA 提速方法——类数据共享 CDS
[*]以为 Java 启动慢?快来使用 CDS 特性飞速启动~
[*]Spring Boot 3.3.0 新特性| 使用 CDS 优化启动时间
AOT
[*]Ahead-of-Time Processing With the JVM
AOT和CDS可以同时使用,通过捐躯一部分动态能力,缩短Java应用的启动时间。
mvn -Pnative package
java -Dspring.aot.enabled=true -jar myapplication.jar相关的注解,好比:
[*]@Profile
[*]@Conditional
[*]@ConditionalOnProperty
[*]Ahead-of-Time Processing
[*]Understanding Spring Ahead-of-Time Processing
GraalVM
[*]GraalVM Native Images
基于GraalVM技术,将Java字节码处理为平台相关的代码,低落内存占用,缩短应用的启动时间。
[*]Introducing GraalVM Native Images
[*]Developing Your First GraalVM Native Application
[*]Native Image Compatibility Guide
Checkpoint and Restore
[*]Checkpoint and Restore With the JVMCoordinated Restore at Checkpoint (CRaC) is an OpenJDK project that defines a new Java API to allow you to checkpoint and restore an application on the HotSpot JVM.
[*]JVM Checkpoint Restore
JVM的启动选项,如下:
[*]-XX:CRaCCheckpointTo=PATH
[*]-XX:CRaCRestoreFrom=PATH
参考资料
[*]CRaC
[*]CRIU代码仓库
Checkpoint/Restore tool
[*]CRIU官网。
Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux.
[*]BellSoft Liberica JDK
[*]Azul JDK
[*]org.crac
Container Images
改进容器的打包方式,分离不变和变的组件,加速容器镜像的构建进程。
对于开辟职员来说,有助于缩短构建时的等待时间,提高生产率。
[*]Container Images
[*]Efficient Container Images
[*]Dockerfiles
[*]Cloud Native Buildpacks
参考资料
[*]Java Buildpack Reference
[*]Layered Jar or War
[*]Packaging Layered Jar or War
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]