场景
在实际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