高效部署

解包可执行 jar

你可以直接使用可执行 jar 运行应用,但从嵌套 jar 加载类会带来一定的启动开销。 根据 jar 包大小,从解包后的结构运行应用速度更快,推荐在生产环境中采用。 部分 PaaS 实现也会在运行前自动解压归档包,例如 Cloud Foundry 就采用了这种方式。

Spring Boot 支持使用不同布局将应用解压到目录中。 默认布局效率最高,并且对 CDSAOT cache 友好。

在该布局下,依赖库会被解压到 lib/ 文件夹,应用 jar 包含应用类和引用 lib/ 文件夹中库的 manifest。

要解包可执行 jar,可运行如下命令:

$ java -Djarmode=tools -jar my-app.jar extract

随后在生产环境中,可运行解包后的 jar:

$ java -jar my-app/my-app.jar

启动后,运行可执行 jar 与运行解包 jar 在执行时间上不会有差异。

运行 java -Djarmode=tools -jar my-app.jar help extract 查看所有可用选项。