开发小技巧【开发者工具】

一、开发者工具(Developer Tools)

  Spring Boot 提供了一套额外的工具,可以让我们更加愉快的开发应用。 spring-boot-devtools 模块可以包含在任何项目中,以在开发期间提供一些有用的特性。 要使用devtools,请添加以下依赖到项目中。

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

提示:

1、如果你的应用程序是通过 java -jar 启动的,或者是从一个特殊的classloader启动的,那么它就被认为是一个 "生产级别的应用程序",开发者工具会被自动
禁用。 你可以通过 spring.devtools.restart.enabled 配置属性来控制这一行为。 要启用devtools,无论用于启动应用程序的类加载器是什么,请
设置启动参数 -Dspring.devtools.restart.enabled=true 。 在生产环境中不能这样做,因为运行devtools会有安全风险。 要禁用devtools,
请删除该依赖或者设置启动参数 -Dspring.devtools.restart.enabled=false2、应该在Maven中把这个依赖的scope标记为 optional,或在Gradle中使用 developmentOnly 配置(如上所示)。以防止使用你的项目的其他模块,
传递地依赖了devtools。 

1.1、属性的默认值

  在Spring Boot支持的一些库中,会使用缓存来提高性能。例如,模板引擎会缓存已编译的模板,以避免重复解析模板文件。另外,Spring MVC可以在响应静态资源时往响应中添加HTTP缓存头。
  虽然缓存在生产中是非常有益的,但在开发过程中可能会产生反作用,使你无法看到你在应用程序中刚做的改动。 由于这个原因,spring-boot-devtools 默认禁用了缓存选项。
  缓存的选项通常是通过 application.properties 文件中的属性来配置的。 例如,Thymeleaf提供了 spring.thymeleaf.cache[] 属性。 与其需要手动设置这些属性,spring-boot-devtools 模块会在开发场景下合理的设置这些属性。
下表列出了所有被设置的属性。
Name                       Default Value


server.error.include-binding-errors             always


server.error.include-message               always


server.error.include-stacktrace              always


server.servlet.jsp.init-parameters.development        true


server.servlet.session.persistent              true


spring.freemarker.cache                 false


spring.graphql.graphiql.enabled              true


spring.groovy.template.cache              false


spring.h2.console.enabled                true


spring.mustache.servlet.cache              false


spring.mvc.log-resolved-exception            true


spring.reactor.debug                  true


spring.template.provider.cache              false


spring.thymeleaf.cache                 ;false


spring.web.resources.cache.period            0


spring.web.resources.chain.cache            false


  

如果你不希望设置属性的默认值,你可以在你的 application.properties 中把 spring.devtools.add-properties[] 设置为 false

  在开发Spring MVC和Spring WebFlux应用程序时,你可能需要更多关于Web请求的信息,开发者工具建议你为Web日志组启用DEBUG日志。这将给你提供关于客户端的请求信息,哪个handler正在处理它,响应结果,以及其他细节。如果你希望记录所有的请求细节(包括潜在的敏感信息),你可以打开 spring.mvc.log-request-details[] 或 spring.codec.log-request-details[] 配置。

2.1 自动重启

  使用spring-boot-devtools的应用程序会在classpath上的文件发生变化时自动重启。当在IDE中工作时,这可能是一个有用的功能,因为它为代码变化提供了一个非常快速的反馈。默认情况下,classpath上任何指向目录的条目都会被监测到变化。注意,某些资源,如静态资源和视图模板发生变化时,不需要重启应用程序。

触发重启

由于DevTools监控classpath资源,触发重启的唯一方法是更新classpath。 无论你使用的是IDE还是构建插件,被修改的文件都必须被重新编译
以触发重启。 导致更新classpath的方式取决于你所使用的工具。

    1、在Eclipse中,保存一个修改过的文件会导致classpath被更新并触发重启。

    2、在IntelliJ IDEA中,构建项目( Build ++ Build Project )有同样的效果。

    3、如果使用构建插件,运行Maven的 mvn compile 或Gradle的 gradle build 会触发重启。

注意:在使用AspectJ 切面时,不支持自动重启
开发者工具的更多功能,请点击开发者工具的详细用法

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值