1.何为热部署
热部署,即在不停服务的前提下,实现应用的部署和服务的重加载。
2.误区
热部署的作用是:给程序员在开发时使用,减少修改代码重启步骤。不是为生产上线部署提供支持
3.底层实现
springBoot的热部署是使用ClassLoader重新加载代码实现。
不使用springBoot热部署时,springBoot只启动一个ClassLoader,加载代码信息,完成后,形成spring容器就是当前的上下文。
使用springBoot热部署时,会启动两个ClassLoader,假设编号为cl-a和cl-b。第一次启动的时候,cl-a进行代码的加载,形成一个Spring容器作为应用上下文,SpringBoot会启动一个线程,做.class文件扫描,如果.class文件发生了变化,则使用cl-b加载修改后的.class文件,重新初始化spring容器并和cl-a初始化的spring容器做merge合并。这种合并可以保证环境是最新的,且只加载修改后的内容,节约初始化时间,提高初始化效率。
4.Eclipse使用ClassLoader进行热部署开发
方式一:插件启动(不推荐使用),需要在应用的pom文件中依赖对应的插件,具体如下:
在启动应用的时候,需