部署spring boot項目到外部tomcat服務器需調整打包方式和配置。1. 修改pom.xml中的打包方式為war,并將內嵌tomcat依賴設為provided;2. 創建繼承springbootservletinitializer的類以確保應用正確啟動;3. 生成war包后部署到tomcat的webapps目錄;4. 注意tomcat版本兼容性、jsp依賴及日志檢查,應用路徑通常與war包名一致。按照步驟操作可順利完成部署。
部署spring boot項目到Tomcat服務器其實并不難,但有些細節容易被忽略。Spring Boot默認使用內嵌的Tomcat,所以如果你要部署到外部的Tomcat服務器,需要做一些調整。下面是一些關鍵步驟和注意事項。
修改打包方式為war
Spring Boot默認是打成可執行jar包運行的,而部署到外部Tomcat需要用war包格式。你需要在pom.xml中做兩件事:
-
把
標簽改成war: <packaging>war</packaging>
-
確保Spring Boot的內嵌Tomcat依賴設置為provided,這樣它不會被打進最終的war包里:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
這一步做完之后,再執行mvn clean package,就會生成一個標準的war文件了。
編寫ServletInitializer類
為了讓你的Spring Boot應用能在外部Tomcat中啟動,需要添加一個繼承自SpringBootServletInitializer的類。這個類會告訴Tomcat如何加載Spring Boot應用。
示例代碼如下:
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class ApplicationInitializer extends SpringBootServletInitializer { @Override protected void configure(SpringApplicationBuilder builder) { builder.sources(Application.class); // 這里的Application是你主類 } }
這個類不需要加任何注解,只要存在就行。有了它,Tomcat在啟動時就能正確初始化Spring上下文。
部署到Tomcat并檢查配置
生成war包之后,就可以把它放到Tomcat的webapps目錄下,然后啟動Tomcat。Tomcat會自動解壓war文件,并部署你的應用。
幾點需要注意的地方:
- Tomcat版本最好和Spring Boot兼容,一般推薦用Tomcat 9或以上。
- 如果你用了JSP頁面,可能需要額外添加一些依賴,比如tomcat-embed-jasper。
- 檢查日志文件(如catalina.out),看有沒有啟動錯誤。
- 應用訪問路徑通常是war包的名字,比如你生成的是myapp.war,那訪問地址就是 http://localhost:8080/myapp。
基本上就這些。整個過程不算復雜,但有幾個關鍵點不能漏掉,尤其是打包方式和ServletInitializer的編寫。只要按照上面的步驟一步步來,大多數情況下都能順利部署成功。