一、开发者工具(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 切面时,不支持自动重启
开发者工具的更多功能,请点击开发者工具的详细用法

开发小技巧【开发者工具】相关推荐

  1. 如何开发小程序开发者工具?

    最近集团内部在自研小程序,我负责小程序开发者工具的调试部分.经过一段时间的探索,摸索出不少经过实际检验的可行手段.接下来将会用几篇文章总结一下思路. 文章的内容主要会分为以下几部分: 如何建立逻辑层运 ...

  2. 微信开发者工具无法选择预览和真机调试_小程序开发 第二篇:使用微信小程序开发者工具、wepy框架初始化项目...

    1.微信小程序开发者工具 使用: 小程序原生开发:直接使用小程序开发者工具打开项目即可 小程序框架开发:首选官方提供类vue.js开发框架 wepy.js ,备选 mpVue.我们选择的是 wepy ...

  3. 微信小程序开发制作 | 小程序开发者工具功能介绍

    小程序开发者工具是微信官方提供的用于开发和调试小程序的工具.它支持 Windows 和 Mac 两种操作系统,并提供了许多实用的功能,使得小程序开发者能够快速地开发和调试小程序. 下面是小程序开发者工 ...

  4. uni-app使用支付宝小程序开发者工具开发钉钉小程序

    一.添加运行配置 在项目的 package.json 文件中添加以下配置 "uni-app": {"scripts": {"mp-dingtalk&q ...

  5. uniapp开发微信小程序,出现[微信小程序开发者工具] [error] Error: Fail to open IDE 错误的原因--潘万丁

    [微信小程序开发者工具] [error] Error: Fail to open IDE 是因为 小程序AppID这里的id有自己以前填写的,现在肯能某种原因无法使用,所以把它清空或天上自己现在能用的 ...

  6. 极客技术专题【009期】:web技术开发小技巧

    为什么80%的码农都做不了架构师?>>>    日期:2013-8-26  来源:GBin1.com 技术专题:Seajs介绍 (分享人:choaklin) 专题演讲稿:SeaJS的 ...

  7. Silverlight 游戏开发小技巧:扇形排列元素

    Silverlight 游戏开发小技巧:扇形排列元素 斗地主风靡了大江南北,在春晚都做免费性推广,棋牌游戏平台几乎将其作为标配,但是牌类游戏总是一成不变的样子--横向排列,如果扇形排列应该更加符合真实 ...

  8. QQ小程序开发者工具及官网

    QQ小程序开发环境 QQ小程序开发者工具_0.2.1版本下载地址,百度网盘提取码:be7g QQ小程序官网地址 QQ小程序开发者文档 QQ小程序开发者社区

  9. 【HbuilderX+微信小程序开发者工具解决报错问题】

    第2节 uni-app的环境搭建并创建项目运行 正确的配置运行终端 获取小程序appid的方法 微信小程序的配置错误导致的问题 问题描述 问题原因 解决方法![在这里插入图片描述](https://i ...

  10. 微信小程序--开发者工具

    微信小程序–开发者工具 俗话说的好:欲先利其事,必先利其器.我们开发人员也是一样,要想敲出更好更快的代码,首先是找一个好的开发工具:开发微信小程序也是如此,微信小程序有个专门的开发工具-微信开发者工具 ...

最新文章

  1. 【独家】深入浅出话AI:定义和主要研究方法
  2. RedHat之yum解决办法
  3. netty源码分析系列——EventLoop
  4. 2015年10月5日 正式启用该博客
  5. redhat下安装apache-tomcat-7.0.47.tar.gz
  6. JavaOne 2015:高级模块化开发
  7. html自动适应屏幕分辨率,css如何自适应屏幕大小?
  8. 怎么读取can报文_【案例】东风天龙“仪表未收到EECU报文”
  9. 几个问题,比较急,知道的大侠,帮帮忙
  10. java数组的声明学号姓名线性结构_20172302 《Java软件结构与数据结构》实验一:线性结构实验报告...
  11. python报错RuntimeError: This event loop is already running
  12. 艺术美的价值是什么?
  13. 虚拟函数-1、静态联编与动态联编,引入虚函数
  14. 使用技巧-输出彩色TIF格式分类结果
  15. java 中 isb啥意思_isb官网-新版下载
  16. python热搜排行功能_用Python做一个微博热搜榜的语音播报
  17. ajax谷歌浏览器提示等待超时,调用谷歌浏览器爬虫,selenium webdriver等设置等待时间和超时时间...
  18. Domain Adaption
  19. 注意到函数preg_replace_callback和preg_replace
  20. 如何彻底卸载java环境

热门文章

  1. Pytorch resnet花朵识别(5种花)附完整代码
  2. 洛谷P1768 天路
  3. ​apk优化的一些奇淫技巧
  4. 【Android开发学习24】界面布局之表格布局TableLayout+TableRow
  5. 2022年小游戏----游戏合成系统(一)
  6. iframe加载pdf支持android,如何检查iframe是否已完全加载PDF文件
  7. 天大2021年秋学期考试《土力学与基础工程》离线作业考核试题
  8. 走在团队的前沿(9)---面向交付的团队建设
  9. 云计算时代,聪明的企业都这么干了!
  10. 李克平教授讲座——《城市道路交叉口规划规范》解读与绿灯间隔问题分析