Spring Boot2如何構建可部署的war包
默認情況下Spring Boot使用了內嵌的Tomcat服務器,項目最終被打成jar包運行,每個jar包可以被看作一個獨立的Web服務器。
傳統(tǒng)的Web開發(fā),一般會將Web應用打成一個war包,然后將其部署到Web服務器中運行。
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
附,項目結構:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Docker?快速部署Springboot項目超詳細最新版
- IDEA Spring Boot 自動化構建+部署的實現(xiàn)
- SpringBoot集成Swagger2構建在線API文檔的代碼詳解
- SpringBoot集成Swagger構建api文檔的操作
- Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解
- Spring Boot 使用 Swagger 構建 RestAPI 接口文檔
- IDEA使用Gradle構建SpringBoot項目工程的詳細教程
- springboot-2.3.x最新版源碼閱讀環(huán)境搭建(基于gradle構建)
- 基于SpringBoot構建電商秒殺項目代碼實例
- Spring Boot構建系統(tǒng)安全層的步驟
相關文章
SpringCloud啟動eureka server后,沒報錯卻不能訪問管理頁面(404問題)
這篇文章主要介紹了SpringCloud啟動eureka server后,沒報錯卻不能訪問管理頁面(404問題),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11springboot返回值轉成JSONString的處理方式
這篇文章主要介紹了springboot返回值轉成JSONString的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06Springcloud中的@RefreshScope的實現(xiàn)
@RefreshScope注解是Spring Cloud中的一個注解,它用來實現(xiàn)Bean中屬性的動態(tài)刷新,本文就來介紹一下@RefreshScope注解的使用,感興趣的可以了解一下2024-06-06Java 數(shù)據(jù)結構與算法系列精講之哈希算法實現(xiàn)
哈希表本質是一種(key,value)結構,由此我們可以聯(lián)想到,能不能把哈希表的key映射成數(shù)組的索引index呢?如果這樣做的話那么查詢相當于直接查詢索引,查詢時間復雜度為O(1),其實這也正是當key為int型時的做法,將key通過某種做法映射成index,從而轉換成數(shù)組結構2022-02-02Java虛擬機JVM之server模式與client模式的區(qū)別
這篇文章主要介紹了Java虛擬機JVM的client模式和Server模式兩者的區(qū)別和聯(lián)系2017-12-12