Spring Boot2如何構(gòu)建可部署的war包
默認(rèn)情況下Spring Boot使用了內(nèi)嵌的Tomcat服務(wù)器,項(xiàng)目最終被打成jar包運(yùn)行,每個jar包可以被看作一個獨(dú)立的Web服務(wù)器。
傳統(tǒng)的Web開發(fā),一般會將Web應(yīng)用打成一個war包,然后將其部署到Web服務(wù)器中運(yùn)行。
Spring Boot也支持傳統(tǒng)的部署模式。
開發(fā)環(huán)境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
1、新建一個名稱為demo的Spring Boot項(xiàng)目。
2、修改pom.xml文件
下面粗體部分為所加代碼,注釋掉原來的build節(jié)點(diǎn),該項(xiàng)目最終會打包成一個war-demo的war包。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<packaging>war</packaging>
<build>
<finalName>war-demo</finalName>
</build>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!-- <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>-->
</project>
3、修改啟動類方法 DemoApplication.java
繼承SpringBootServletInitializer,重寫父類configure方法。增加測試用的控制器。
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication extends SpringBootServletInitializer {
protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
return application.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@RequestMapping("/")
public String test(){
return "test";
}
}
4、先后點(diǎn)擊IDEA的Maven窗口的clean和package

到項(xiàng)目的target目錄下,可看到生成了一個war-demo.war,把它拷貝到Tomcat的webapps目錄下,啟動Tomcat,
訪問http://localhost:8080/war-demo/,可看到頁面輸出:test
附,項(xiàng)目結(jié)構(gòu):

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Docker?快速部署Springboot項(xiàng)目超詳細(xì)最新版
- IDEA Spring Boot 自動化構(gòu)建+部署的實(shí)現(xiàn)
- SpringBoot集成Swagger2構(gòu)建在線API文檔的代碼詳解
- SpringBoot集成Swagger構(gòu)建api文檔的操作
- Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的過程詳解
- Spring Boot 使用 Swagger 構(gòu)建 RestAPI 接口文檔
- IDEA使用Gradle構(gòu)建SpringBoot項(xiàng)目工程的詳細(xì)教程
- springboot-2.3.x最新版源碼閱讀環(huán)境搭建(基于gradle構(gòu)建)
- 基于SpringBoot構(gòu)建電商秒殺項(xiàng)目代碼實(shí)例
- Spring Boot構(gòu)建系統(tǒng)安全層的步驟
相關(guān)文章
解析Java的可變長參數(shù)列表及其使用時的注意點(diǎn)
spring boot jpa寫原生sql報Cannot resolve table錯誤解決方法
詳解SpringBoot應(yīng)用服務(wù)啟動與安全終止

