SpringBoot系列:springdevtools模块
专家
格拉德勒
SpringBoot支持的一些库使用缓存技术来提高性能。比如模板引擎会缓存编译好的模板,避免每次都解析模板文件;Spring MVC也会缓存一些静态文件的Http头属性。
虽然在生产环境下缓存可以大大提高程序的性能,但是在开发阶段并不是很友好,所以spring-boot-devtools会默认禁用这些缓存。例如,spring-boot-devtools将通过属性Sping禁用百里香的缓存。百里香叶。缓存。
当我们使用IDE(如Eclipse、IDEA等。)要开发SpringBoot项目,spring-boot-devtools会在检测到项目类路径下的变化时自动重启项目。
当然,spring-boot-devtools对此进行了优化。它创建了两个类加载器,一个基类加载器用于加载依赖的第三方库的类,项目中正在开发的类将由另一个重启类加载器加载,这样每次项目重启时,实际上都创建了一个新的重启类加载器来加载项目中生成的类文件,所以会比一般的项目启动快很多。
Spring-boot-devtools支持全局设置功能。默认情况下,以下配置文件位于目录$HOME/中。config/spring-boot将被自动加载并应用到在这台机器上运行的所有SpringBoot项目($HOME表示当前用户的主目录):
如果要开启SpringBoot项目的远程调试功能,需要在应用打包时将spring-boot-devtools打包在一起(默认情况下spring-boot-devtools不会打包在一起,它只是开发时的辅助包),比如Maven项目,我们可以这样设置:
启动本地应用时,需要选择主类为org . spring framework . boot . devtools . remotespringapplication,并将程序参数设置为http://ip:port(远程服务的地址)。
Spring-boot-devtools是基于关机钩子的,所以不能设置为false (Spring应用。SetRegisterShutdownHook (false))。
https://docs . spring . io/spring-boot/docs/current/reference/html single/# using . dev tools