- 部署到Java应用程序服务器 -如果必须将应用程序部署到Tomcat,WebSphere,WebLogic或任何其他传统的Java应用程序服务器,则除了将应用程序构建为WAR文件之外,您别无选择。
- 部署到云 —如果您打算将应用程序部署到云,无论是Cloud Foundry,Amazon Web Services(AWS),Azure,Google Cloud Platform还是大多数其他任何云平台,那么可执行JAR文件都是最佳选择。即使云平台支持WAR部署,JAR文件格式也比为应用程序服务器部署设计的WAR格式简单得多。
构建和部署WAR文件
事实证明,将Spring Boot应用程序构建到WAR文件并不难。实际上,如果在通过Initializr创建应用程序时选择了WAR选项,则无需执行其他操作。
Initializr确保所生成的项目将包含servlet初始化程序类,并且该构建文件将用于生成WAR文件。但是,如果您选择从Initializr构建一个JAR文件,请继续。
首先,您需要一种配置Spring的方法DispatcherServlet
package tacos.ingredients;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
public class IngredientServiceServletInitializer
extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
return builder.sources(IngredientServiceApplication.class);
}
}
现在,您已经编写了servlet初始化程序类,您必须对项目构建进行一些小的更改。如果使用Maven进行构建,则所需的更改非常简单,只需确保将<packaging>pom.xml 中的元素设置为即可war:
<packaging>war</packaging>
构建应用程序了。使用Maven,您将使用Initializr用于执行程序包目标的Maven包装器脚本:
$ mvnw package
如果构建成功,则可以在目标目录中找到WAR文件。
构建完成后,WAR文件将位于build / libs目录中。剩下的就是部署应用程序了。
同样,Gradle构建所需的更改也很简单。您必须war在build.gradle文件中应用插件:
apply plugin: 'war'
使用Gradle包装器执行构建任务:
$ gradlew build