linux Spring Boot在打包部署的時(shí)候打包成jar和war有什么不同?
Spring Boot在打包部署的時(shí)候打包成jar和war有什么不同?當(dāng)打包為war包時(shí),部署期間需要運(yùn)行Tomcat。當(dāng)打包為jar包時(shí),不需要Tomcat。它可以直接運(yùn)行。也就是說,jar包會(huì)稍微
Spring Boot在打包部署的時(shí)候打包成jar和war有什么不同?
當(dāng)打包為war包時(shí),部署期間需要運(yùn)行Tomcat。當(dāng)打包為jar包時(shí),不需要Tomcat。它可以直接運(yùn)行。也就是說,jar包會(huì)稍微大一點(diǎn),占用一個(gè)端口。當(dāng)打包為war包時(shí),多個(gè)項(xiàng)目可以放在一個(gè)Tomcat下并占用同一個(gè)端口。
spring boot生產(chǎn)環(huán)境打包方式(jar/war),為什么?
首先,問題的問題點(diǎn)不是很清楚??磥砦蚁胫拦拮雍蛻?zhàn)爭(zhēng)的區(qū)別。我將從這個(gè)角度來談。我希望我對(duì)這個(gè)問題的理解是正確的。
說到打包,首先,spring boot在項(xiàng)目中的作用是什么?市場(chǎng)上大多數(shù)的詞都是“家庭水桶”。這沒什么問題,但這個(gè)家庭的桶里有什么。
那么,回到當(dāng)前的問題,與傳統(tǒng)的spring項(xiàng)目相比,spring boot和傳統(tǒng)spring項(xiàng)目的區(qū)別之一是它嵌入了Tomcat服務(wù)器。這是什么意思?我們不需要外部容器!讓我們從正反兩個(gè)方面來討論它:首先,不可否認(rèn)的是,在生產(chǎn)環(huán)境中,spring boot項(xiàng)目可以鍵入jar或war包,但是根據(jù)官方的建議,最好鍵入jar。原因很簡(jiǎn)單,“我給了你一個(gè)特價(jià)給你家。你為什么要訂?”當(dāng)spring啟動(dòng)應(yīng)用程序時(shí),內(nèi)置的Tomcat服務(wù)器將啟動(dòng)并加載應(yīng)用程序(這可以從啟動(dòng)日志中看到)。
2。如果創(chuàng)建了war包,那么在應(yīng)用程序啟動(dòng)時(shí)需要依賴Tomcat或jetty等容器(不可避免地會(huì)引起jar沖突,需要手動(dòng)刪除依賴關(guān)系),這與spring-in-conforme-Boot被設(shè)計(jì)成一個(gè)家族bucket相反(因?yàn)閖ar的入口是主要功能);
最后,總而言之,彈簧靴提供彈簧BootStartApplication.class類因?yàn)樗渴鹪谝粋€(gè)外部容器中,所以它不能依賴于應(yīng)用程序的主要功能。相反,它的部署方式應(yīng)該類似于網(wǎng)站.xml文件配置啟動(dòng)應(yīng)用程序的上下文就相當(dāng)于把你的spring引導(dǎo)偽裝回原來的形狀,變成一個(gè)普通的spring項(xiàng)目。