SpringBoot應(yīng)用部署之WAR包部署方式
WAR包部署
將Spring Boot應(yīng)用部署為WAR包并部署到外部Tomcat服務(wù)器上,需要進(jìn)行一些特定的配置和步驟。
以下是詳細(xì)說(shuō)明:
1. 修改打包方式
在項(xiàng)目的構(gòu)建工具配置文件中(通常是pom.xml
for Maven),將打包方式改為war
。以下是構(gòu)建工具的具體示例:
Maven
在pom.xml
中的<packaging>
標(biāo)簽設(shè)置為war
:
<project> <!-- ... --> <packaging>war</packaging> <!-- ... --> </project>
2. 排除內(nèi)置Tomcat
為了防止與外部Tomcat服務(wù)器產(chǎn)生沖突,需要在構(gòu)建配置中排除Spring Boot的內(nèi)嵌Tomcat依賴(lài)。
在Maven的pom.xml
中添加以下依賴(lài)排除:
<dependencies> <!-- ... --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- ... --> </dependencies>
3. 配置SpringBootServletInitializer
為了讓Spring Boot應(yīng)用能夠由外部Servlet容器如Tomcat加載,需要?jiǎng)?chuàng)建一個(gè)繼承自SpringBootServletInitializer
的類(lèi),并重寫(xiě)configure
方法:
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } }
這里Application.class
是您的主應(yīng)用程序類(lèi),包含@SpringBootApplication
注解。
4. 構(gòu)建WAR文件
使用對(duì)應(yīng)的構(gòu)建工具命令生成WAR包:
Maven
mvn clean package
生成的WAR文件通常位于target
目錄下,文件名為your-project-name-<version>.war
。
5. 部署到Tomcat
將生成的WAR文件復(fù)制到Tomcat的webapps
目錄下。
如果您正在運(yùn)行Tomcat服務(wù),它會(huì)自動(dòng)檢測(cè)到新部署的WAR文件并進(jìn)行解壓及部署。
如果您尚未啟動(dòng)Tomcat,啟動(dòng)后它同樣會(huì)處理新部署的WAR文件。
6. 訪問(wèn)應(yīng)用
部署完成后,您可以使用以下URL訪問(wèn)您的Spring Boot應(yīng)用:
http://localhost:8080/your-project-name
這里的your-project-name
通常對(duì)應(yīng)WAR文件的基礎(chǔ)名稱(chēng)(不帶版本號(hào))。如果在部署過(guò)程中更改了上下文路徑,訪問(wèn)URL應(yīng)相應(yīng)調(diào)整。
注意事項(xiàng):
- 依賴(lài)沖突:與JAR部署一樣,確保沒(méi)有依賴(lài)沖突,特別是與Tomcat相關(guān)的依賴(lài)。
- 外部化配置:避免在WAR包中硬編碼敏感配置,使用環(huán)境變量、外部配置文件或配置服務(wù)管理。
- 日志配置:遵循Tomcat的日志配置規(guī)范,可能需要調(diào)整Spring Boot的日志配置以適應(yīng)Tomcat環(huán)境。
- 健康檢查與監(jiān)控:同樣可以利用Spring Boot Actuator,但可能需要調(diào)整端點(diǎn)路徑以適應(yīng)Tomcat部署的上下文路徑。
按照以上步驟,就能成功將Spring Boot應(yīng)用打包成WAR文件并部署到Tomcat服務(wù)器上了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot傳遞單一參數(shù)時(shí)@RequestParam和@RequestBody的區(qū)別小結(jié)
用SpringBoot框架做項(xiàng)目時(shí),經(jīng)常需要前端給后端傳遞參數(shù),本文主要介紹了SpringBoot傳遞單一參數(shù)時(shí)@RequestParam和@RequestBody的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08關(guān)于@Scheduled注解的任務(wù)為什么不執(zhí)行的問(wèn)題
這篇文章主要介紹了關(guān)于@Scheduled注解的任務(wù)為什么不執(zhí)行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09基于JVM 調(diào)優(yōu)的技巧總結(jié)分析
本篇文章是對(duì)JVM 調(diào)優(yōu)的技巧進(jìn)行了總結(jié)和分析。需要的朋友參考下2013-05-05Java Timezone類(lèi)常見(jiàn)問(wèn)題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java Timezone類(lèi)常見(jiàn)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2017-05-05Java使用Jedis操作Redis服務(wù)器的實(shí)例代碼
本篇文章主要介紹了Java使用Jedis操作Redis服務(wù)器的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Java 將PPT幻燈片轉(zhuǎn)為HTML文件的實(shí)現(xiàn)思路
本文以Java程序代碼為例展示如何通過(guò)格式轉(zhuǎn)換的方式將PPT幻燈片文檔轉(zhuǎn)為HTML文件,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家分享實(shí)現(xiàn)思路,需要的朋友參考下吧2021-06-06SpringBoot實(shí)現(xiàn)熱部署的方式總結(jié)
所謂熱部署,就是在應(yīng)用正在運(yùn)行的時(shí)候升級(jí)軟件,卻不需要重新啟動(dòng)應(yīng)用,對(duì)于Java來(lái)說(shuō),熱部署就是在運(yùn)行時(shí)更新Java類(lèi)文件,本文將深入探討SpringBoot有哪些方式可以實(shí)現(xiàn)熱部署,感興趣的朋友可以小編一探討學(xué)習(xí)2023-06-06