springboot devtools

devtools是什么

debug代码的时候,发现是个小bug,都不值得劳资手动重启应用怎么办?

springboot提供了一个spring-boot-devtools的工具,让我们在上述场景中提升效率。

它可以监控classpath下的资源,一旦classpath下有变动,就会触发应用重启。

如何使用devtools

在项目中添加spring-boot-devtools依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

这里设置optional为true,是因为spring-boot-devtools一般只使用于开发环境,在生产环境是需要禁用的。这样我们通过java -jar去启动应用,就不会启用devtools了,当然也可以防止devtools传递给依赖本应用的应用。

如何触发应用重启?

Eclipse,对源文件修改并保存,就会触发重启。
IDEA,构建项目触发重启,Build -> Build Project

当然如果你的机器配置高,IDEA勾选下图选项,可以在你修改文件后一定时间自动重启。

机器好可以这么玩,性能差就算了,因为devtools重启的时候,你的机器可能还没变编译完,就是起来了,也是个不完整的应用,比如controller没加载,调接口直接404……不要问我为什么知道,问就是我踩过

不过这也能操作,毕竟原因我们知道了,就是还没构建完成,devtools就重启了呗,那咱们就让devtools晚会儿重启呗。。

spring:
    devtools:
        restart:
            poll-interval: 3s

这里设置devtools检测周期长一点,我3s够了,你不够再长点呗。。

有几点需要注意:

  • devtools 将会使用独立的类加载器。
  • devtools 依赖应用程序关闭钩子,如果你的应用禁用了关闭钩子(SpringApplication.setRegisterShutdownHook(false)),devtools 将会失效。
  • 在决定是否应该触发重启时,devtools 将会自动忽略名为 spring-boot , spring-boot-devtools , spring-boot-autoconfigure , spring-boot-actuator 和 spring-boot-starter 的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值