背景:服务端调用动态代理(基于接口),可以实现单线程转多线程功能。
实现热部署方式:
1.启动关闭组件的方法。停止线程池的添加功能
2.等待线程内的冗余任务执行完成
3。关闭runtimeClassLoader
4.利用sha1校验更新介质
5.生成新的运行环境,new runtimeClassLoader
6.set新的文件到classFinder中,
7.到此为止,新的runtimeClassLoader已经set到runtimeEnv了
8.创建新的环境管理factory并且加载各个组件
9.在start方法中更新threadfactroy的loader,这样洗呢线程就可以读取到新的实现类
10.通过动态代理就可以使用新的实现类调用方法。