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