Eclipse實現熱啟動,熱部署


1、 熱部署:就是容器狀態在運行的情況下重新部署整個項目.在這種情況下一般整個內存會清空,重新加載.簡單來說就是Tomcat或者其他的web服務器會幫我們重新加載項目.這種方式可能會造成session丟失等情況。

2、熱加載:就是容器狀態在運行的情況下重新加載改變編譯后的類.在這種情況下內存不會清空,sessin不會丟失,但容易造成內存溢出,或者找不到方法。因為內存無法轉變成對像. 一般改變類的結構和模型就會有異常,在已經有的變量和方法中改變是不會出問題的。

        在基於Java的實現熱部署、熱加載的過程中,類裝入器扮演着重要的角色。類裝入器不能重新裝入一個已經裝入的類,否則會報java.lang.LinkageError,但只要使用一個新的類裝入器實例,就可以將類再次裝入一個正在運行的應用程序。一般debug模式都支持熱加載。

eclipse實現熱加載:找到服務器下的配置文件,以tomcat服務器為例,找到目錄下

打開server.xml文件,找到

<Context docBase="dreamlive" path="/ROOT" reloadable="true" crossContext="true" source="org.eclipse.jst.jee.server:dreamlive"/> 

這行代碼,在部署新項目的時候,docBase和source會隨着改變,現在還是熱部署的狀態,這樣每次更改class文件都會自動的去編譯,比較耗時,接下來我們更改一下配置:

 <Context docBase="dreamlive" path="/ROOT" reloadable="false" crossContext="true" source="org.eclipse.jst.jee.server:dreamlive"/></Host>

 這里將reloadable改為false,添加crossContext="true",這樣就能進行 熱啟動 了,注意:需要用debug啟動

不過在部署新項目的時候,需要重新去更改這個配置,設置完成之后如果啟動項目熱加載並沒有生效,那么勾選eclipse-->project-->Build Automatically,加上自動編譯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM