知识卡片
热部署的双类加载器机制
内容
开发时频繁重启应用最耗时的部分往往是加载第三方依赖,而不是加载自己刚改的那几个类。热部署工具的做法是把类加载器拆成两个:一个基础类加载器专门加载不变的第三方jar类,一个重启类加载器专门加载当前正在开发、会频繁变化的业务类。每次代码变更触发重启时,只丢弃并重建负责业务类的那个加载器,基础类加载器保持不变、无需重新加载第三方依赖,重启速度因此比完整冷启动快得多。发散:这是”识别出变化频率不同的部分,分别用不同生命周期管理”的通用优化思路——只要能把”几乎不变的部分”和”频繁变化的部分”物理上拆开,就能避免每次都为不变的部分支付重复的加载/构建成本。
参考来源
《Spring Boot应用开发实战》第7章《部署与运维》