Spring Boot2如何構(gòu)建可部署的war包
默認(rèn)情況下Spring Boot使用了內(nèi)嵌的Tomcat服務(wù)器,項(xiàng)目最終被打成jar包運(yùn)行,每個(gè)jar包可以被看作一個(gè)獨(dú)立的Web服務(wù)器。
傳統(tǒng)的Web開(kāi)發(fā),一般會(huì)將Web應(yīng)用打成一個(gè)war包,然后將其部署到Web服務(wù)器中運(yùn)行。
Spring Boot也支持傳統(tǒng)的部署模式。
開(kāi)發(fā)環(huán)境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
1、新建一個(gè)名稱(chēng)為demo的Spring Boot項(xiàng)目。
2、修改pom.xml文件
下面粗體部分為所加代碼,注釋掉原來(lái)的build節(jié)點(diǎn),該項(xiàng)目最終會(huì)打包成一個(gè)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、修改啟動(dòng)類(lèi)方法 DemoApplication.java
繼承SpringBootServletInitializer,重寫(xiě)父類(lèi)configure方法。增加測(cè)試用的控制器。
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目錄下,可看到生成了一個(gè)war-demo.war,把它拷貝到Tomcat的webapps目錄下,啟動(dòng)Tomcat,
訪問(wèn)http://localhost:8080/war-demo/,可看到頁(yè)面輸出:test
附,項(xiàng)目結(jié)構(gòu):
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Docker?快速部署Springboot項(xiàng)目超詳細(xì)最新版
- IDEA Spring Boot 自動(dòng)化構(gòu)建+部署的實(shí)現(xiàn)
- SpringBoot集成Swagger2構(gòu)建在線API文檔的代碼詳解
- SpringBoot集成Swagger構(gòu)建api文檔的操作
- Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的過(guò)程詳解
- 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)文章
SpringCloud啟動(dòng)eureka server后,沒(méi)報(bào)錯(cuò)卻不能訪問(wèn)管理頁(yè)面(404問(wèn)題)
這篇文章主要介紹了SpringCloud啟動(dòng)eureka server后,沒(méi)報(bào)錯(cuò)卻不能訪問(wèn)管理頁(yè)面(404問(wèn)題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11一文帶你學(xué)習(xí)Java多維數(shù)組的使用技巧
Java作為一門(mén)廣泛應(yīng)用于各行各業(yè)的開(kāi)發(fā)語(yǔ)言,具有豐富的數(shù)據(jù)類(lèi)型支持,其中多維數(shù)組是其重要的一種,多維數(shù)組可以更加方便地組織數(shù)據(jù),提高Java應(yīng)用程序的效率,本文將為大家介紹Java中多維數(shù)組的基本概念和常用操作,助力讀者更好地掌握多維數(shù)組的使用技巧2023-11-11springboot返回值轉(zhuǎn)成JSONString的處理方式
這篇文章主要介紹了springboot返回值轉(zhuǎn)成JSONString的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06JAVA基礎(chǔ)之注解與反射的使用方法和場(chǎng)景
這篇文章主要給大家介紹了關(guān)于JAVA基礎(chǔ)之注解與反射的使用方法和場(chǎng)景的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Springcloud中的@RefreshScope的實(shí)現(xiàn)
@RefreshScope注解是Spring Cloud中的一個(gè)注解,它用來(lái)實(shí)現(xiàn)Bean中屬性的動(dòng)態(tài)刷新,本文就來(lái)介紹一下@RefreshScope注解的使用,感興趣的可以了解一下2024-06-06IDEA maven依賴(lài)錯(cuò)誤中包下面紅色波浪線
這篇文章主要介紹了IDEA maven依賴(lài)錯(cuò)誤中包下面紅色波浪線,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之哈希算法實(shí)現(xiàn)
哈希表本質(zhì)是一種(key,value)結(jié)構(gòu),由此我們可以聯(lián)想到,能不能把哈希表的key映射成數(shù)組的索引index呢?如果這樣做的話那么查詢相當(dāng)于直接查詢索引,查詢時(shí)間復(fù)雜度為O(1),其實(shí)這也正是當(dāng)key為int型時(shí)的做法,將key通過(guò)某種做法映射成index,從而轉(zhuǎn)換成數(shù)組結(jié)構(gòu)2022-02-02Java虛擬機(jī)JVM之server模式與client模式的區(qū)別
這篇文章主要介紹了Java虛擬機(jī)JVM的client模式和Server模式兩者的區(qū)別和聯(lián)系2017-12-12