(1) 熱部署:就是容器狀態在運行的情況下重新部署整個項目.在這種情況下一般整個內存會清空,重新加載.簡單來說就是Tomcat或者其他的web服務器會幫我們重新加載項目.這種方式可能會造成sessin丟失等情況.
(2)熱加載:就是容器狀態在運行的情況下重新加載改變編譯后的類.在這種情況下內存不會清空,sessin不會丟失,但容易造成內存溢出,或者找不到方法。因為內存無法轉變成對像. 一般改變類的結構和模型就會有異常,在已經有的變量和方法中改變是不會出問題的
在基於Java的實現熱部署、熱加載的過程中,類裝入器扮演着重要的角色。類裝入器不能重新裝入一個已經裝入的類,否則會報java.lang.LinkageError,但只要使用一個新的類裝入器實例,就可以將類再次裝入一個正在運行的應用程序。一般debug模式都支持熱加載。
但我在這里遇到了eclipse使用debug啟動卻並沒有熱加載的狀況,這樣對於開發來說是非常耗時的,因為每更改一次class文件都需要重新編譯。下面我就如何使用eclipse進行熱加載,做一個簡單介紹:
打開server.xml,找到
比對下:改成下面這樣:
<Context docBase="dreamlive" path="/ROOT" reloadable="false" crossContext="true" source="org.eclipse.jst.jee.server:dreamlive"/></
-------------ok了,跑去吧
