熱部署與熱加載聯系
- 不重新開機伺服器編譯/部署項目
- 基于Java的類加載器實作
熱部署與熱加載的差別
- 熱部署在伺服器運作時重新加載部署項目
- 熱加載運作時重新加載class
熱部署與熱加載在實作原理上的差別
- 熱部署直接重新加載整個應用
- 熱加載在運作時重新加載class
使用場景
- 熱部署更多的是在生産環境使用
- 熱加載則更多的是在開發環境中使用
熱部署原了解析
類加載的五個階段
熱部署原理-Java類加載器特點
- 由AppClass Loader(系統類加載器)開始加載指定的類。
- 類加載器将加載任務交給其父類,如果父類找不到,再由自己去加載。
- Bootstrap Loader(啟動類加載器)是最頂級的類加載器。
Java類的熱部署
類的熱加載
public class MyClassLoader extends ClassLoader {
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
byte[] data = this.loadClassData(name);
return this.defineClass(name, data, 0, data.length);
}
}
配置Tomcat
原生熱部署
直接把項目web檔案放在webapps裡
自定義路徑熱部署
在tomcat\conf\sever.xml中的内部添加标簽。
通過配置Tomcat實作熱部署
在 %tomcat_home%\conf\Catalina\localhost中添加一個XML