Spring Boot devtool的使用
Spring Boot devtool的使用
Spring Boot为我们提供了一个便捷的开发Spring Boot应用程序的环境,同时为了方便我们的开发Spring Boot应用程序,Spring Boot 推出了Spring Boot devtool的工具来方便我们更加快速的开发和测试Spring Boot应用程序。
我们将会从下面几个方面来详细讲解Spring Boot devtool的功能。
添加Spring Boot devtool依赖
添加Spring Boot devtool依赖很简单:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
这样就添加好了,我们可以开始使用Spring boot devtool带给我们的优秀功能了。
默认属性
Spring Boot为我们提供了很多自动配置来提高我们开发的效率,比如会缓存模板引擎例如thymeleaf, 但是如果我们在开发过程汇中可能需要快速的看到修改的结果,这个时候我们就不需要这个缓存配置了,这时候我们就需要配置:
spring.thymeleaf.cache=false
如果添加了spring-boot-devtools, 上述的配置就不需要手动添加,devtool会自动帮我们添加好。
自动重启
在开发过程中,如果我们修改了某些java文件,我们可能需要重启下项目来观看修改后的结果,如果使用spring-boot-devtools,当classpath中有文件变动时候,devtools会自动帮你重启服务器。
注意,这里的重启的条件是classpath的文件要有变化,如果你在使用IDEA开发的话,请勾选“Build project automatically” 选项,如下图示所示,否则你需要重新build项目来使重启生效。

Live Reload
Live Reload主要针对资源文件的,我们的APP启动之后,可以看到一个:
o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
当资源文件变动的时候,方便前端刷新。
如果要用到这个live reload的功能,需要在chrome浏览器中安装一个Remote Live Reload 的插件。

这个插件主要是通过引入的脚本livereload.js在 livereload 服务和浏览器之间建立了一个 WebSocket 连接。每当监测到文件的变动,livereload 服务就会向浏览器发送一个信号,浏览器收到信号后就刷新页面,实现了实时刷新的效果。
全局配置
spring-boot-devtools 提供了一个全局配置文件,方便你的开发环境配置,该文件在$HOME 目录下面的 .spring-boot-devtools.properties 。
本文的例子可以参考 https://github.com/ddean2009/learn-springboot2/tree/master/springboot-devtool
更多教程请参考 flydean的博客
Spring Boot devtool的使用的更多相关文章
- spring boot: 热部署spring-boot-devtools
spring boot: 热部署spring-boot-devtools 1引入spring-boot-devtools依赖包 <!-- spring boot devtools 热部署 --& ...
- spring boot热部署pom.xml配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Spring boot之JPA
JPA 步骤: (1)在pom.xml添加mysql,spring-data-jpa依赖 (2)在application.properties文件中配置mysql连接配置文件 (3)在applicat ...
- Spring boot之热部署
springboot热部署 1.springloaded(热部署) 2.devtools(热部署) 一.springloaded 问题的提出: 在编写代码的时候,你会发现我们只是简单把打印信息改变了, ...
- 使用eclipse,对spring boot 进行springloader或者devtool热部署失败处理方法
确定配置进行依赖和配置没有错误后. 调整spring boot 的版本,因为新版本对老版本的spring boot 不能使用. 改为: <groupId>org.springframewo ...
- [转] Spring Boot and React hot loader
When I develop web applications, I love using React. I'm also a Spring and groovy addict. Those two ...
- Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率)
我个人是比较不喜欢去正儿八经的比较两个框架的,这样没有意义,不过欲善其事先利其器! 技术是相通的,但是在某个特定的领域的某个阶段肯定有相对最适合的一个工具! 这里比较不是从技术角度比较,而是从公司技术 ...
- 程序配置的原则和实践以及 Spring Boot 支持方式
原则 软件需要在不同的环境中部署,代码是保持不变的,但是不同的运行环境存在差异,所以需要使用配置适应不同的环境.比如: 数据库,Redis,以及其他 后端服务 的配置: 第三方服务的证书,如 oAut ...
- spring boot面试问题集锦
译文作者:david 原文链接:https://www.javainuse.com/spring/SpringBootInterviewQuestions Q: 什么是spring boot? A: ...
随机推荐
- 阿里 IOS 面试官教你在面试中脱颖而出
前言: 知己知彼.百战不殆,面试也是如此. 只有充分了解面试官的思路,才能更好地在面试中充分展现自己. 今天,阿里高级技术专家将分享自己作为面试官的心得与体会.如果你是面试者,可以借此为镜,对照发现自 ...
- 如何用git将本地项目push到Github
Step1 github页面:创建一个仓库(如何创建github仓库,你可能需要参考这篇教程),库名(Repository name)为你打算放在github上的项目名称.例如:  [root ...
- Android | 教你如何开发扫二维码功能
前言 最近要做一个停车场扫码收费的app,在网上搜了一圈,首先接触到了ZXing,上手试了下,集成过程不复杂,但是感觉效果欠佳,比如距离稍微远点儿就扫不出来了,另外角度对的不好,反光或者光线比较暗 ...
- linux中忘记了mysql的root用户的密码怎么办?
1.vim /etc/my.cnf skip-grant-tables #取消此行的注释 2.重启mysql systemctl restart mysqld 3.mysql 登陆mysql mys ...
- [Python] 字符串加密解密
1. 最简单的方法是用base64: import base64 s1 = base64.encodestring('hello world') s2 = base64.decodestring(s1 ...
- spring-cloud feign的多参数传递方案
查看原文 一.GET请求多参数URL 1.方法一(推荐) @FeignClient(“microservice-provider-user”) public interface UserFeignCl ...
- PHPStorm IDE 快捷键
⌘——Command ⌃ ——Control ⌥——Option/Alt ⇧——Shift ⇪——Caps Lock fn——功能键就是fn编辑 Command+alt+T 用 (if..else, ...
- c++学习day01基础知识学习
一.代码示例解析: #include <iostream> int main() { using namespace std; cout << "come up an ...
- Vm安装虚拟机并使用net模式连接外网
Vm安装虚拟机并使用net模式连接外网 最近想搭建一个maven私服和阿波罗配置中心一切准备就绪时 发现本地vm虚拟机无法连接外网,嗯 ~ ~ ,一句cnm不由从嘴里崩了出来.没办法,只能配置一下了接 ...