- 部署到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