undertow重启后replaceClassLolader()有什么用?

undertow重启过程中的代码如下

image.png

doStop();
config.replaceClassLoader();
doStart();

停止应用,执行replaceClassLoader(),启动应用,再doStart()中会使用HotSwapClassLoader重新加载action内容,

config.replaceClassLolader()这行代码有什么用呢?可以删除吗?

评论区

杜福忠

2021-06-22 14:10

replace ClassLoader 就是 替换类加载器
调用栈:
config.replaceClassLoader();》
getClassLoaderKit().replaceClassLoader();》
currentClassLoader = new HotSwapClassLoader(classPathUrls, parentClassLoader, hotSwapResolver);
又放置了一个新的空容器去装载新的Class,这样比如一些类里面有成员变量赋值啥的,都会重置,重新加载了