前言:
而今同学们对“java为什么打不开debug”大概比较关怀,同学们都想要分析一些“java为什么打不开debug”的相关知识。那么小编在网摘上汇集了一些对于“java为什么打不开debug””的相关文章,希望姐妹们能喜欢,各位老铁们快快来了解一下吧!
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 的项目。
标签: #java为什么打不开debug