tomcat的热部署
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
java熱部署與熱加載,以及配置tomcat實現(xiàn)熱部署的方式
1、熱部署與熱加載
在應(yīng)用運行的時候升級軟件,無需重新啟動的方式有兩種,熱部署和熱加載。
它們之間的區(qū)別是:
(1)、部署方式:?
熱部署在服務(wù)器運行時重新部署項目。
熱加載在運行時重新加載class。
(2)、實現(xiàn)原理
熱部署直接重新加載整個應(yīng)用,這種方式會釋放內(nèi)存,比熱加載更加干凈,但是它比熱加載更加的浪費時間。
熱加載在運行時重新加載class,主要使用的是類加載機制,在實現(xiàn)方式上就是在容器啟動的時候起一條后臺線程,定時的檢測類文件的時間戳變化,如果類的時間戳發(fā)生變化,則將類重新載入。
(3)、使用場景
熱部署更多的是在生產(chǎn)環(huán)境中使用,就是適用于頻繁的部署并且啟動耗時長的應(yīng)用、無法停止服務(wù)的應(yīng)用等。
熱加載則更多的是在開發(fā)環(huán)境中使用,用于開發(fā),debug中,可以大大的提高開發(fā)效率。
2、熱加載的應(yīng)用:
struts2中的熱加載應(yīng)用:
在struts2中熱加載即開發(fā)者模式,在struts.xml配置
<constant?name="struts.devMode"?value="true"?/>?????這是開啟開發(fā)者模式,每次更改代碼不需要重啟服務(wù)器就可以進(jìn)行調(diào)試。
3、配置tomcat實現(xiàn)熱部署與熱加載的方式
(1)、在tomcat的webapps中新建一個與項目名相同的文件,并把項目下WebContent文件夾下的內(nèi)容剪切到剛剛新建的文件夾中。這是tomcat自帶的熱部署。
(2)、在tomcat\conf\server.xml中的Host標(biāo)簽中加上一個配置。
<Context?docBase="D:/test/web"?path="/hot"?privileged="true"?reloadable="true"/>path:指定訪問該web應(yīng)用的URL進(jìn)口
docBase:指定web應(yīng)用的文件路徑,可以給定絕對路徑,也可以給定相對于<Host>的appBase屬性【默認(rèn)指向tomcat的webapps】的相對路徑;要是Web應(yīng)用是個war文件,則指定war文件的路徑。?
reloadable:要是這個屬性設(shè)置為true,Tomcat服務(wù)器在運行狀況下會監(jiān)視在WEB-INF/classess和WEB-INF/lib目次下的class文件的改動,以及監(jiān)視web應(yīng)用的WEB-INF/web.xml文件的改動。要是檢測到的class文件或者web.xml文件被更新,服務(wù)器會自動加載Web應(yīng)用。該屬性的默認(rèn)值為false.在web應(yīng)用的開發(fā)和調(diào)試階段,把reloadable設(shè)為true,可以方便對web應(yīng)用的調(diào)試。在web應(yīng)用正式發(fā)布階段,把reloadable設(shè)為false,可以減低tomcat的運行負(fù)荷,提高Tomcat的運行性能。?
(3)、在tomcat\conf\catalina\localhost中添加一個xml文件
hot.xml
<?xml?version="1.0"?encoding="UTF-8"?>?? <Context?docbase="D:/test/web"?reloadable="true"/>??服務(wù)器會使用xml文件的名字作為URL路徑
eclipse通過tomcat熱部署web項目
雙擊tomcat,打開tomcat的配置界面,按如下幾個步驟配置eclipse熱部署:?
單擊“Overview”選項卡
展開“Server Options”,勾選“Serve modules without publishing”選項
展開”publishing“,勾選”Automatically publish when resources change“選項。這個配置是用來熱部署資源,如:JSP,XML和properties文件等。(默認(rèn)是勾選的)
?單擊”Modules“選項卡,確保”Auto Reload“是被禁用的
<Context docBase="logistics-manage-web" path="/logistics-manage-web" reloadable="true" source="org.eclipse.jst.jee.server:logistics-manage-web"/>以DEBUG模式啟動tomcat,熱部署在DEBUG模式下才可用
?
參考文章:https://blog.csdn.net/zhang854429783/article/details/50086923
??????????????https://blog.csdn.net/haha_66666/article/details/78821498
轉(zhuǎn)載于:https://my.oschina.net/u/3568600/blog/1820727
總結(jié)
以上是生活随笔為你收集整理的tomcat的热部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT1066 Root of AVL
- 下一篇: iOS应用数据持久化(一)