一、概述
在應用運行的時升級軟件,無需重新啟動的方式有兩種,熱部署和熱加載。
對於Java應用程序來說,
熱部署就是在服務器運行時重新部署項目,——生產環境
熱加載即在在運行時重新加載class,從而升級應用。——開發環境
二、實現原理
熱加載的實現原理主要依賴java的類加載機制,在實現方式可以概括為在容器啟動的時候起一條后台線程,定時的檢測類文件的時間戳變化,如果類的時間戳變掉了,則將類重新載入。
對比反射機制,反射是在運行時獲取類信息,通過動態的調用來改變程序行為; 熱加載則是在運行時通過重新加載改變類信息,直接改變程序行為。
熱部署原理類似,但它是直接重新加載整個應用,這種方式會釋放內存,比熱加載更加干凈徹底,但同時也更費時間。
深入的原理解析,參考importNew:http://www.importnew.com/17115.html
Tomcat實現熱部署的三種配置方式:http://blog.csdn.net/nlwangxin/article/details/49734659