摘要:本文重点讲解devtools作用和使用场景、怎么部署devtools以及自定义设定devtools的重启/不重启目录

1、devtools作用和使用场景:

Spring Boot的devtools主要作用是热部署,众所周知,当我们在开发时,经常需要修改一些内容然后重启、调试,但是不断的重启项目是很耗时的,特别是项目比较大时,重启时间就比较恶心了。

有了devtools,我们就可以通过简单的方式是我们的修改生效。

2、部署devtools

1)首先在我们的pom.xml中添加依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope>
</dependency>
2)然后,在build–plugins中加入:
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!--fork :  如果没有该项配置,devtools不会起作用,即应用不会restart --><fork>true</fork></configuration>
</plugin>
注意:

配置完之后,启动项目时遇到的问题

Caused by: java.lang.ClassCastException

报错原因是:为了实现热部署,Devtools原有自己的类加载器,进行更新,由于类加载器的不同导致类型转换失败。
解决办法:
将要强制类型转换的对象先转换成json格式,再转换回来即可。
如果不是必须要使用devtools的话,也可以直接去掉devtools的依赖:

3)怎么restart?

eclipse:当你Ctrl + S 保存的时候,就会自动热部署。
IDEA:需要简单配置一下:
打开File – settings – keymap
搜索reload,双击,然后选择 Add Keyboard Shortcut
然后输入对应按键(推荐使用Alt+E):

3、自己设置devtools重启/不重启目录

默认情况下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public这些文件夹下的文件修改不会使应用重启,但是会重新加载(devtools内嵌了一个LiveReload server,当资源发生改变时,浏览器刷新)。

1)自己设置不重启的目录:
spring.devtools.restart.exclude=static/**,public/**

这样的话,就只有这两个目录下的文件修改不会导致restart操作了。

2)在保留默认设置的基础上,添加其他的排除目录:
spring.devtools.restart.additional-exclude=
3)当非classpath下的文件发生变化时,应用得以重启:
spring.devtools.restart.additional-paths=

spring boot 使用devtools热部署相关推荐

  1. spring boot之 DevTools 热部署,修改代码立刻见效,快速重启

    IDEA新建sping boot选择  DevTools spring-boot-devtools 模块能够实现热部署,添加类  添加方法  修改配置文件  修改页面等 都能实现热部署     原理就 ...

  2. Spring Boot idel 实现热部署

    1. 相信大家很多都会说Spring Boot 实现热部署 在POM 中加一个 spring-boot-devtools 就可以了,但是很多时候是不行的话,下面我就来 带大家Spring Boot 如 ...

  3. Spring Boot 2.0 热部署指南

    Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功 ...

  4. Spring Boot 项目实现热部署

    方法一:devtools Pom.xml中直接添加依赖即可: <dependency><groupId>org.springframework.boot</groupId ...

  5. Spring Boot 开发环境热部署(HotSwap)详解

    前言 Spring Boot 提出了多项开箱即用的功能特性,但归根到底还是围绕简化应用的创建.开发.运行.开发环境下我们经常对项目代码进行变动,如果每次都重新启动应用会浪费我们大量时间,为此就产生了多 ...

  6. Spring Boot 五种热部署方式,极速开发就是生产力!

    欢迎关注方志朋的博客,回复"666"获面试宝典 模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的, ...

  7. 阿里原来是这么干的!Spring Boot 五种热部署方式

    作者:若离x 来源:my.oschina.net/ruoli/blog/1590148 1.模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面 ...

  8. 极速开发之Spring Boot五种热部署方式

    在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存 ...

  9. Spring Boot 五种热部署方式,再也不用老重启了!

    1.模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭 ...

最新文章

  1. CCF NOI1054 扫雷游戏
  2. mongodb 分片群集配置 及数据迁移
  3. 【双100%解法】剑指 Offer 22. 链表中倒数第k个节点
  4. fastdfs 吗 支持windows_主流开源文件存储系统-fastdfs是否支持windows?你可以选择minio...
  5. DOM节点创建(jQuery)
  6. C# 使用WinApi操作剪切板Clipboard
  7. 博弈——威佐夫博弈(hdu1527,2177)
  8. 云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot
  9. Mysql学习笔记(一)数据类型
  10. 常微分方程组及高阶常微分方程的数值解法
  11. 高等数学学习指导_学习A-Level应该如何选课?
  12. cannot import name 'NPCAP_PATH'
  13. 参考文献编号[9]之后出现空格解决方法
  14. html中添加cnzz,vue中移动端网页 H5网站 添加到 友盟 cnzz的方法
  15. 如何快速搭建个人网站
  16. 阿里云 mysql 命令_是mysql命令
  17. 哪一个国家耗巨资请熊猫去的_熊猫4.0:一个月过去了,复苏迹象
  18. python3.6.6对应pydev_python之pydev安装
  19. torch.Tensor常用数据操作汇总与自动求梯度
  20. NSoup Select 示例

热门文章

  1. Oracle ------ SQLDeveloper中SQL语句格式化快捷键
  2. js中的call和apply方法的区别
  3. Memcached介绍及相关知识
  4. 事务的隔离级别与锁的申请和释放
  5. CodeForces 230A
  6. j2ee与mysql乱码过滤_J2EE中文乱码处理
  7. 贵大计算机考研情侣,贵大计算机研究生怎么样?
  8. shell foreach 拼接字符串_FIND_IN_SET 及IN 处理逗号间隔的字符串参数
  9. localdate存mysql相差一天_如何在保存到mySQL数据库时阻止LocalDate更改
  10. PL-SLAM Real-time monocular visual SLAM with points and lines