8.1 衡量多种部署方式
Spring Boot 应用程序有多种构建和运行方式,其中一些你已经使用过了。
在 IDE 中运行应用程序(涉及 Spring ToolSuite 或 IntelliJ IDEA)。
使用 Maven 的
spring-boot:run或 Gradle 的bootRun,在命令行里运行。使用 Maven 或 Gradle 生成可运行的 JAR 文件,随后在命令行中运行。
使用 Spring Boot CLI 在命令行中运行 Groovy 脚本。
使用 Spring Boot CLI 来生成可运行的 JAR 文件,随后在命令行中运行。
这些选项每一个都适合运行正在开发的应用程序。但是,如果要将应用程序部署到生产环境或其他非开发环境中,又该怎么办呢?
虽然这些选项看起来没有一个能将应用部署于非开发环境,但事实上,它们之中只有一个选项不可用于生产环境 - 在 IDE 中运行应用显然不可取。可运行的 JAR 文件和 Spring Boot CLI 还是可以考虑的,两者还可以很好地将应用程序部署到云环境里。
也许你很想知道如何把 Spring Boot 应用程序部署到一个更加传统的应用服务器环境里,比如 Tomcat、WebSphere 或 WebLogic。在这些情境中,可执行 JAR 文件和 Groovy 代码不适用。针对应用服务器的部署,你需要将应用程序打包成一个 WAR 文件。
实际上,Spring Boot 应用程序可以用多种方式打包,详见表 8-1。
表 8-1 Spring Boot 部署选项
部署产物 | 产生方式 | 目标环境 |
|---|---|---|
Groovy 源码 | 手写 | Cloud Foundry 及容器部署,比如 Docker |
可执行 JAR | Maven、Gradle 或 Spring Boot CLI | 云环境,包括 Cloud Foundry 和 Heroku,还有容器部署,比如 Docker |
WAR | Maven 或 Gradle | Java 应用服务器或云环境,比如 Cloud Foundry |
如你所见,在做最终选择时需要考虑目标环境。如果要将应用程序部署到自己数据中心的 Tomcat 服务器上,WAR 文件就是你的选择。另一方面,如果要部署到 Cloud Foundry,可以使用表里列出的各种选项。
本章将关注以下选项。
向 Java 应用服务器里部署 WAR 文件。
向 Cloud Foundry 里部署可执行 JAR 文件。
向 Heroku 里部署可执行 JAR 文件(构建过程是由 Heroku 执行的)。
探索这些场景的时候,我们还要处理一件事。在开发应用程序时我们使用了嵌入式的 H2 数据库,现在得把它替换成生产环境所需的数据库了。
首先,让我们看看如何将阅读列表应用程序构建为 WAR 文件。这样才能把它部署到 Java 应用服务器里,比如 Tomcat、WebSphere 或 WebLogic。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论