Spring Boot2如何構(gòu)建可部署的war包
默認情況下Spring Boot使用了內(nèi)嵌的Tomcat服務(wù)器,項目最終被打成jar包運行,每個jar包可以被看作一個獨立的Web服務(wù)器。
傳統(tǒng)的Web開發(fā),一般會將Web應(yīng)用打成一個war包,然后將其部署到Web服務(wù)器中運行。
Spring Boot也支持傳統(tǒng)的部署模式。
開發(fā)環(huán)境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
1、新建一個名稱為demo的Spring Boot項目。
2、修改pom.xml文件
下面粗體部分為所加代碼,注釋掉原來的build節(jié)點,該項目最終會打包成一個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、先后點擊IDEA的Maven窗口的clean和package

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Docker?快速部署Springboot項目超詳細最新版
- IDEA Spring Boot 自動化構(gòu)建+部署的實現(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項目工程的詳細教程
- springboot-2.3.x最新版源碼閱讀環(huán)境搭建(基于gradle構(gòu)建)
- 基于SpringBoot構(gòu)建電商秒殺項目代碼實例
- Spring Boot構(gòu)建系統(tǒng)安全層的步驟
相關(guān)文章
SpringCloud啟動eureka server后,沒報錯卻不能訪問管理頁面(404問題)
這篇文章主要介紹了SpringCloud啟動eureka server后,沒報錯卻不能訪問管理頁面(404問題),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
一文帶你學(xué)習(xí)Java多維數(shù)組的使用技巧
Java作為一門廣泛應(yīng)用于各行各業(yè)的開發(fā)語言,具有豐富的數(shù)據(jù)類型支持,其中多維數(shù)組是其重要的一種,多維數(shù)組可以更加方便地組織數(shù)據(jù),提高Java應(yīng)用程序的效率,本文將為大家介紹Java中多維數(shù)組的基本概念和常用操作,助力讀者更好地掌握多維數(shù)組的使用技巧2023-11-11
springboot返回值轉(zhuǎn)成JSONString的處理方式
這篇文章主要介紹了springboot返回值轉(zhuǎn)成JSONString的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Springcloud中的@RefreshScope的實現(xiàn)
@RefreshScope注解是Spring Cloud中的一個注解,它用來實現(xiàn)Bean中屬性的動態(tài)刷新,本文就來介紹一下@RefreshScope注解的使用,感興趣的可以了解一下2024-06-06
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之哈希算法實現(xiàn)
哈希表本質(zhì)是一種(key,value)結(jié)構(gòu),由此我們可以聯(lián)想到,能不能把哈希表的key映射成數(shù)組的索引index呢?如果這樣做的話那么查詢相當(dāng)于直接查詢索引,查詢時間復(fù)雜度為O(1),其實這也正是當(dāng)key為int型時的做法,將key通過某種做法映射成index,從而轉(zhuǎn)換成數(shù)組結(jié)構(gòu)2022-02-02
Java虛擬機JVM之server模式與client模式的區(qū)別
這篇文章主要介紹了Java虛擬機JVM的client模式和Server模式兩者的區(qū)別和聯(lián)系2017-12-12

