学透 Spring:从入门到项目实战
丁雪丰
美团研究员
1073 人已学习
立即订阅
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
时长 07:11
时长 15:51
时长 00:10
时长 02:03
时长 00:39
学透 Spring:从入门到项目实战
15
15
1.0x
00:00/00:00
登录|注册

第 5 章 面向生产的 Spring Boot(2)

5.3 部署 Spring Boot 应用程序

在 Spring Boot Actuator 的帮助下,我们早早地就准备好了一些手段来掌握系统在运行时的各种指标,现在就差临门一脚,让系统在服务器上跑起来了,而这也是一门学问,在这一节里就让我们一同来了解一下其中的秘诀。

5.3.1 可执行 Jar 及其原理

放到以前,要运行 Java EE 的应用程序需要一个应用容器,比如 JBoss 或者 Tomcat。但随着技术的发展,外置容器已经不再是必选项了,Spring Boot 可以内嵌 Tomcat、Jetty 等容器,一句简单的 java -jar 命令就能让我们的工程像个普通进程一样运行起来。
通过 Maven 打包整个工程
在用 Maven 命令打包前,先来回顾一下 pom.xml 中配置的插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
spring-boot-maven-plugin 会在 Maven 的打包过程中自动介入,除了生成普通的 Jar 包外,还会生成一个包含所有依赖的 Fat Jar。以上一节用到的 ch5/binarytea-export 为例,打开一个终端(macOS 中的终端,对应 Windows 中的 CMD 或者 PowerShell),在工程目录中(即 pom.xml 的目录)键入如下命令
▸ mvn clean package -Dmaven.test.skip
随后,查看 target 目录的内容,大致会是下面这样的:
total 38712
-rw-r--r-- 1 digitalsonic staff 19M 2 7 22:43 binarytea-0.0.1-SNAPSHOT.jar
-rw-r--r-- 1 digitalsonic staff 8.3K 2 7 22:43 binarytea-0.0.1-SNAPSHOT.jar.original
drwxr-xr-x 5 digitalsonic staff 160B 2 7 22:43 classes
drwxr-xr-x 3 digitalsonic staff 96B 2 7 22:43 generated-sources
drwxr-xr-x 3 digitalsonic staff 96B 2 7 22:43 maven-archiver
drwxr-xr-x 3 digitalsonic staff 96B 2 7 22:43 maven-status
其中的 binarytea-0.0.1-SNAPSHOT.jar.original 是原始的 Jar 包,仅包含工程代码编译后的内容,大小只有 8.3KB;而 binarytea-0.0.1-SNAPSHOT.jar 则有 19MB,这就是生成的可执行 Jar 包。只需简单的一条命令就能将工程运行起来:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了Spring Boot应用程序的部署及原理,重点讲解了可执行Jar的部署方式和Spring Boot Actuator的运行时指标监控。传统的Java EE应用程序需要应用容器来运行,而Spring Boot则可以内嵌Tomcat、Jetty等容器,通过简单的`java -jar`命令即可运行工程。文章详细介绍了通过Maven打包整个工程生成可执行Jar包的过程,以及可执行Jar背后的原理,包括Jar包的组成结构。通过分析Jar包的内容,读者可以了解到可执行Jar包的构成,从而更好地理解Spring Boot应用程序的部署原理。此外,文章还介绍了如何通过配置`spring-boot-maven-plugin`生成可以直接在Linux中运行的Jar文件,以及如何构建启动代码和自定义Banner栏。另外,还介绍了Spring Boot提供的优雅关闭能力,以及在系统启动时执行一次性逻辑的方法。总的来说,本文通俗易懂,适合想要快速了解Spring Boot应用程序部署的读者阅读。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《学透 Spring:从入门到项目实战》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部