SpringBoot配置热部署DevTools

目录

一、简介

1、DevTools是什么,为什么要使用?

2、监控的方式

二、配置DevTools

1、pom.xml

2、application.yml

3、 IDEA中开启自动编译的配置


一、简介

1、DevTools是什么,为什么要使用?

Spring Boot DevTools是一个开发工具,旨在提高开发人员的开发体验。它提供了一系列功能,如自动重启、热部署、远程调试等,以帮助开发人员更快地开发和调试应用程序。

DevTools的原理主要是通过监控classpath下的文件变化,来实现自动重启和热部署功能。当检测到文件发生变化时,DevTools会重新加载应用程序的上下文,从而使新的代码变化生效。

DevTools的主要目标是加快开发人员的开发速度,使他们能够更快地反馈和验证代码变更。除了文件监控功能外,DevTools还提供了一些其他功能,如远程调试、禁用模板缓存、禁用缓存等,以提高开发效率和调试能力。

2、监控的方式

  • 文件系统监听:DevTools使用底层操作系统的文件系统监听功能来监控文件的变化。当文件发生变化时,DevTools会触发应用程序的重启。

  • 类加载器:DevTools会创建一个额外的类加载器,用于加载classpath下的类文件。当检测到类文件发生变化时,DevTools会丢弃旧的类加载器,创建一个新的类加载器来加载最新的类文件,从而实现热部署功能。

  • 轮询检测(Polling):对于不支持文件系统监听器的操作系统,如Windows,DevTools会使用轮询机制来检测文件的变化。它会定期扫描classpath下的文件,比较文件的最后修改时间,如果发现有文件发生变化,则会触发应用程序的重启。

  • 触发器文件(Trigger file):DevTools还支持使用触发器文件来触发应用程序的重启。开发人员可以在项目的根目录下创建一个名为.trigger的空文件,当该文件被创建、修改或删除时,DevTools会触发应用程序的重启。

二、配置DevTools

1、pom.xml

<!-- 添加 Spring Boot DevTools 依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <!-- 作用范围为运行时 -->
    <scope>runtime</scope>
    <!-- 设置为可选依赖,不会被强制引入 -->
    <optional>true</optional>
</dependency>

2、application.yml

# 是否开启DevTools自动重启功能,默认为true
spring.devtools.restart.enabled=true

# 配置触发重启的文件路径,多个路径使用逗号分隔,默认为src/main/java,src/main/resources
spring.devtools.restart.additional-paths=src/main/java,src/main/resources

# 配置触发重启的文件扩展名,默认为.trigger
spring.devtools.restart.trigger-file=.trigger

# 配置重启时需要排除的文件路径,多个路径使用逗号分隔,默认为META-INF/maven, META-INF/resources, resources, static, public, templates
spring.devtools.restart.exclude=WEB-INF/**,META-INF/**,resources/**,static/**,public/**,templates/**

3、 IDEA中开启自动编译的配置

打开Idea注册表  Shift + Ctrl + Alt + /,勾选配置。

ps:如果idea中没有compiler.automake.allw.when.app.running选项就不需要理会。

最后建议重启Idea,进行测试。

猜你喜欢

转载自blog.csdn.net/weixin_46759354/article/details/136695408