1 說明
SpringBoot內置tomcat使用起來很方便昆雀,打成jar包以后就可以直接運行蝠筑,然而這樣的運行方式還是有它的局限性的,沒有外部獨立的tomcat管理起來方便挽封,而且如果有多個web應用臣镣,使用外部tomcat的優(yōu)勢也很明顯。所以在這里我就給大家介紹一下在IDEA中如何將一個springboot應用打成war包部署到外部tomcat中渠缕。
2 步驟
2.1 修改打包的形式
將原來的jar包形式改為war包形式褒繁,也就是將pom.xml文件里的<packaging>jar</packaging>改成<packaging>war</packaging>馍忽。
2.2 修改導出war包的名稱
在pom.xml文件的<build>節(jié)點下可以添加一個節(jié)點<finalName>用來指定最后導出war包的名稱燕差。
2.3 移除內置的tomcat插件
有兩種方式:
一種是在pom.xml文件里找到spring-boot-starter-web依賴節(jié)點徒探,在其中添加如下代碼:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
另一種方法是在pom.xml里面直接添加如下依賴項:
<!--部署成war包時開啟↓↓↓↓--><
dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--部署成war包時開啟↑↑↑↑-->
2.4 修改啟動類
例如我們以前的啟動類是App喂窟,修改之前App如下:
修改之后App如下:
其中的變化就是繼承了類SpringBootServletInitializer磨澡,然后添加了方法:
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(App.class);
}
2.5 使用IDEA導出war包
在IDEA中點擊【Build】——【Build Artifacts】稳摄,然后選擇要打包的springboot工程,點擊【Build】或者【ReBuild】厦酬,然后在工程的target目錄下面會生成war包。
2.6 在tomcat中使用war包訪問
將打好的war包放在tomcat的webapps目錄下面昌讲,啟動tomcat减噪,war包會自動解壓出一個和war包同名的文件夾,這個時候可以通過路徑【http://ip:port/war包的名稱】來訪問springboot系統(tǒng)鸠按,如果需要修改配置的話可以在解壓的文件夾中找到springboot的yml配置文件饶碘,修改其中的配置項,然后重啟tomcat生效瑟曲。
3 注意事項
3.1 tomcat版本
記得外部tomcat要使用8.5及以上的版本豪治,不然支持不了springboot。