spring boot 使用devtools热部署
摘要:本文重点讲解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热部署相关推荐
- spring boot之 DevTools 热部署,修改代码立刻见效,快速重启
IDEA新建sping boot选择 DevTools spring-boot-devtools 模块能够实现热部署,添加类 添加方法 修改配置文件 修改页面等 都能实现热部署 原理就 ...
- Spring Boot idel 实现热部署
1. 相信大家很多都会说Spring Boot 实现热部署 在POM 中加一个 spring-boot-devtools 就可以了,但是很多时候是不行的话,下面我就来 带大家Spring Boot 如 ...
- Spring Boot 2.0 热部署指南
Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功 ...
- Spring Boot 项目实现热部署
方法一:devtools Pom.xml中直接添加依赖即可: <dependency><groupId>org.springframework.boot</groupId ...
- Spring Boot 开发环境热部署(HotSwap)详解
前言 Spring Boot 提出了多项开箱即用的功能特性,但归根到底还是围绕简化应用的创建.开发.运行.开发环境下我们经常对项目代码进行变动,如果每次都重新启动应用会浪费我们大量时间,为此就产生了多 ...
- Spring Boot 五种热部署方式,极速开发就是生产力!
欢迎关注方志朋的博客,回复"666"获面试宝典 模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的, ...
- 阿里原来是这么干的!Spring Boot 五种热部署方式
作者:若离x 来源:my.oschina.net/ruoli/blog/1590148 1.模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面 ...
- 极速开发之Spring Boot五种热部署方式
在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存 ...
- Spring Boot 五种热部署方式,再也不用老重启了!
1.模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭 ...
最新文章
- CCF NOI1054 扫雷游戏
- mongodb 分片群集配置 及数据迁移
- 【双100%解法】剑指 Offer 22. 链表中倒数第k个节点
- fastdfs 吗 支持windows_主流开源文件存储系统-fastdfs是否支持windows?你可以选择minio...
- DOM节点创建(jQuery)
- C# 使用WinApi操作剪切板Clipboard
- 博弈——威佐夫博弈(hdu1527,2177)
- 云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot
- Mysql学习笔记(一)数据类型
- 常微分方程组及高阶常微分方程的数值解法
- 高等数学学习指导_学习A-Level应该如何选课?
- cannot import name 'NPCAP_PATH'
- 参考文献编号[9]之后出现空格解决方法
- html中添加cnzz,vue中移动端网页 H5网站 添加到 友盟 cnzz的方法
- 如何快速搭建个人网站
- 阿里云 mysql 命令_是mysql命令
- 哪一个国家耗巨资请熊猫去的_熊猫4.0:一个月过去了,复苏迹象
- python3.6.6对应pydev_python之pydev安装
- torch.Tensor常用数据操作汇总与自动求梯度
- NSoup Select 示例
热门文章
- Oracle ------ SQLDeveloper中SQL语句格式化快捷键
- js中的call和apply方法的区别
- Memcached介绍及相关知识
- 事务的隔离级别与锁的申请和释放
- CodeForces 230A
- j2ee与mysql乱码过滤_J2EE中文乱码处理
- 贵大计算机考研情侣,贵大计算机研究生怎么样?
- shell foreach 拼接字符串_FIND_IN_SET 及IN 处理逗号间隔的字符串参数
- localdate存mysql相差一天_如何在保存到mySQL数据库时阻止LocalDate更改
- PL-SLAM Real-time monocular visual SLAM with points and lines