這篇文章將為大家詳細(xì)講解有關(guān)SpringBoot在怎么外置Tomcat,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)建站是一家專業(yè)提供梁園企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為梁園眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
配置包管理文件
打開項(xiàng)目根目錄的pom.xml文件,在project標(biāo)簽下聲明打包格式為war,代碼如下所示:
war
排除內(nèi)置tomcat
打包時(shí)默認(rèn)會將內(nèi)置的tomcat打包進(jìn)去,這就造成了沖突問題,所以此處我們需要將內(nèi)置的排除掉,在dependencies標(biāo)簽下添加下述依賴。
org.springframework.boot spring-boot-starter-tomcat provided
此處還有一個(gè)做法是在spring-boot-starter-web依賴內(nèi)排除掉依賴內(nèi)排除掉tomcat,這樣做他會把websocket相關(guān)的包也給排除掉,你項(xiàng)目內(nèi)的websocket就沒法使用了,需要手動多引入javax.websocket-api這個(gè)依賴,這個(gè)依賴的最后更新時(shí)間是2016年,所以不推薦使用這個(gè)方法。
websocket相關(guān)
既然使用了外置tomcat,那么原先使用內(nèi)置tomcat所配置的東西就可以刪除了(當(dāng)然,你不刪也是可以的,但是為了代碼規(guī)范最好還是刪掉吧),我這里刪除的東西如下:
pom.xml中的依賴
org.springframework.boot spring-boot-starter-websocket
websocket的啟動配置,代碼如下
package com.lk.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; /** * websocket啟動配置 */ @Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } }
設(shè)置打包名與路徑
如果不設(shè)置名字和路徑默認(rèn)的打包名會附帶帶版本號,打包路徑在當(dāng)前項(xiàng)目的的target目錄下,我們可以通過在pom.xml中的build標(biāo)簽下對其進(jìn)行自定義,代碼如下:
修改啟動類
接下來,我們修改下SpringBoot的啟動類,讓其繼承SpringBootServletInitializer,重寫configure方法,告訴它我們使用的是外置Tomcat,代碼如下:
@SpringBootApplication public class ChatSystemServerApplication extends SpringBootServletInitializer { // 外置tomcat需要繼承SpringBootServletInitializer,重寫SpringApplicationBuilder @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(ChatSystemServerApplication.class); } public static void main(String[] args) { SpringApplication.run(ChatSystemServerApplication.class, args); } }
至此,我們的項(xiàng)目配置部分就完成了,我們刷新下pom.xml文件,在idea的maven工具欄點(diǎn)clean,然后點(diǎn)package,就可以打一個(gè)war包在target目錄下了。
tomcat配置
我的項(xiàng)目啟用了https,使用外置tomcat后,在application.yml中配置的https就失效了,我們需要在tomcat中重新配一下。
開啟https訪問
我們打開tomcat的conf目錄下的server.xml,找到name為Catalina的Service標(biāo)簽里的
隨后,在上述標(biāo)簽的后面加上下述代碼,讓非80端口的訪問跳轉(zhuǎn)到443端口
配置 certificateKeystoreFile為你的證書文件,certificateKeystorePassword為你的證書文件密碼,這個(gè)密碼在keystorePass.txt文件里 配置路徑訪問 將war包放入tomcat的webapps目錄下后,我們想反問需要帶上項(xiàng)目名才可以,如果我們不想加項(xiàng)目名就能直接訪問我們的項(xiàng)目,就需要另作配置了。 在server.xml文件中,找到 path: 留空則表示為域名根目錄,docBase為你的war包所在目錄 設(shè)置默認(rèn)首頁 由于我們修改了tomcat的默認(rèn)訪問頁面,所有的根目錄訪問時(shí)不會走ROOT目錄下的頁面,此時(shí)就需要在項(xiàng)目里配置一個(gè)根目錄的映射,讓其跳轉(zhuǎn)到我們指定的項(xiàng)目內(nèi)的ststic中的頁面,代碼如下: 關(guān)于SpringBoot在怎么外置Tomcat就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。 Context path="" docBase="">
// 默認(rèn)首頁映射 @Controller public class DefaultController { @RequestMapping("/") public String Welcome(){ return "forward:index.html"; } }
當(dāng)前題目:SpringBoot在怎么外置Tomcat
文章URL:http://weahome.cn/article/pdieci.html