代码热替换,在不重启服务器的情况下可以修改类的代码并使之生效
1. 自定义类加载器
1 | package com.pibgstar.demo.java; |
2. 测试
自定义一个每2秒打印调用一次方法打印版本号,先编译一次版本号为2的 MyClassLoaderTest .class类,然后启动版本号为1的,在运行过程中,我们把版本号为1的MyClassLoaderTest .class类替换成版本号为2的MyClassLoaderTest .class类,我们发现控制台立马输出了版本号2
1 | package com.pibgstar.demo.java; |