提供零基础网站建设教学在哪里,做普通网站需要多少钱,徐州网站建设咨询,海南 网站制作前言最近在开发的时候#xff0c;每次改动代码都需要启动项目#xff0c;因为有的时候改动的服务比较多#xff0c;所以重启的次数也就比较多了#xff0c;想着每次重启等待也挺麻烦的#xff0c;就打算使用DevTools工具实现项目的热部署热部署是什么大家都知道在项目开发…前言最近在开发的时候每次改动代码都需要启动项目因为有的时候改动的服务比较多所以重启的次数也就比较多了想着每次重启等待也挺麻烦的就打算使用DevTools工具实现项目的热部署热部署是什么大家都知道在项目开发过程中常常会改动页面数据或者修改数据结构为了显示改动效果往往需要重启应用查看改变效果其实就是重新编译生成了新的Class文件这个文件里记录着和代码等对应的各种信息然后Class文件将被虚拟机的ClassLoader加载。而热部署正是利用了这个特点它监听到如果有Class文件改动了就会创建一个新的ClaassLoader进行加载该文件经过一系列的过程最终将结果呈现在我们眼前类加载机制Java中的类经过编译器可以把代码编译为存储字节码的Class文件该Class文件存储了各种信息最终要加载到虚拟机中运行使用。类加载机制(摘自《深入理解 Java 虚拟机》)虚拟机把描述类的数据从Class文件加载到内存中并对数据进行校验、转换解析和初始化最终形成可以被虚拟机直接使用的Java类型。添加依赖org.springframework.bootspring-boot-devtoolstrueDevTools的配置#热部署生效spring.devtools.restart.enabled: true#设置重启的目录spring.devtools.restart.additional-paths: src/main/java#classpath目录下的WEB-INF文件夹内容修改不重启spring.devtools.restart.exclude: WEB-INF/**IDEA需要的配置当我们修改了Java类后IDEA默认是不自动编译的而spring-boot-devtools又是监测classpath下的文件发生变化才会重启应用所以需要设置IDEA的自动编译File-Settings-Compiler-Build Project automaticallyctrl shift alt /,选择Registry,勾上 compiler.automake.allow.when.app.running