摘要:本文重点讲解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. 设计模式六大原则(5):迪米特法则
  2. C#DataGridView添加序号
  3. CVS 快速入门指南
  4. 羊车门问题python_python编程羊车门问题代码示例
  5. android 内部拦截,如何使用proxy,如何在内部拦截get方法
  6. 裤子尺码对照表eur40_弄明白这两个问题,你就知道内衣尺码怎么区分
  7. (34)System Verilog引用包中定义的类(失败)
  8. iPhone 12 5G更耗电?续航时间较4G妥妥地缩短不少
  9. Elasticsearch--分词-自定义扩展词库---全文检索引擎ElasticSearch工作笔记022
  10. 磁盘阵列 RAID 技术原理详解
  11. GIS_gdal geotiff文件与JAVA 浮点二维数组array之间的转换
  12. 非常可乐(广度搜索)
  13. 架构 全局负载均衡与CDN网络简介
  14. flash 调试版本
  15. SpringbootJPA分页 PageRequest过时
  16. Excel/SPSS相关性及显著性水平分析
  17. 恭喜宿主获得鸿蒙,我在混沌开学院
  18. CSS溢出文字使用省略号表示
  19. Hadoop分布式集群搭建以及案例运行-fs操作
  20. mysql 设置 sql_mode

热门文章

  1. 高性能mysql 第5章 创建高可用的索引
  2. vue引入bootstrap、jquery
  3. Java Socket 编程
  4. go-基础知识二-数据类型-变量
  5. 设置ecshop2.7首页幻灯片宽度为100%
  6. 无法生成“F:\system voiume information”下的常规文件夹列表拒绝访问
  7. arpspoof渗透工具使用方法详解+实战
  8. winserver2008/2008R2 AD域控/DNS环境搭建详细步骤
  9. 案例学习BlazeDS+Spring之三InSync01查找联系人
  10. kotlin 扩展函数_在 Kotlin 中“实现”trait/类型类