場景
在實際Java Web應用開發中,經常會遇到修改一些Java 類時需要重啓才能生效(熱部署並不會對所有Java 類生效)。線上的項目也是如此,遇到嚴重的Bug需要重啓那個模塊所在的Java 應用。
以上的種種,如果項目比較小或許重啓一下也沒什麼,但實際項目大都不小。這裏提出一種運行時添加或替換Java 類的方法(個人見識有限,可能已經有類似的東西存在)。
實現步驟
效果
設置一個新增或替換Java類的接口,參數爲Resouce中類的完整類名
// 添加一個名爲Hello的Java類,並執行這個新增類的 void he() 方法
ManageResourceClass manage = DefaultManageResourceClass.getInstance("/application.properties");
Object o = manage.getObject("Hello");
o.getClass().getMethod("he").invoke(o);
項目的完整代碼
gitee路徑: https://gitee.com/guozhi97/demoOfJavaThermalcompilation.git