概述
一、开发者工具(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=false。
2、应该在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 切面时,不支持自动重启。
开发者工具的更多功能,请点击开发者工具的详细用法
最后
以上就是耍酷台灯为你收集整理的开发小技巧【开发者工具】一、开发者工具(Developer Tools)的全部内容,希望文章能够帮你解决开发小技巧【开发者工具】一、开发者工具(Developer Tools)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复