首页 » Spring Boot实战 » Spring Boot实战全文在线阅读

《Spring Boot实战》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。