如果你的SpringBoot工程是一個jar工程,而想把它改造成war工程,並打成war包放到外部的tomcat下運行,該怎么修改配置呢?這里以Maven工程為例進行介紹。
(1)將pom.xml中的打包方式由jar改成war
(2)在pom.xml中添加spring-boot-starter-tomcat依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
(3)創建一個java類ServletInitializer,繼承SpringBootServletInitializer,重寫其configure方法,並通過builder.sources(MavenApplication.class)將SpringBoot工程的啟動類(比如我的啟動類名為MavenApplication)傳進去:
package com.xuebusi.springboot.maven; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; /** * Created by SYJ on 2017/12/20. */ public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MavenApplication.class); } }
(4)使用maven插件打war包,如下圖所示,雙擊package(或install)命令即可打包:
除了上面的打包方式之外,還可以在IntelliJ IDEA的命令行窗口使用maven命令來打包,比如使用"mvn install"或者"mvn package"命令來打包:
打包成功:
打好的war包位於項目的target目錄下:
(5)將war包拷貝到外部tomcat的webapps目錄下,並改名為ROOT.war:
啟動tomcat,即可看到控制台SpringBoot啟動成功:
項目源碼:https://github.com/xuebus/xbs-springboot-maven-war
(文章結束)