springboot-devtools idea或eclipse 热加载
大家好,我是烤鸭:
今天分享一下springboot项目的热加载。
第二种方式在eclipse和idea中都可以。虽然会有一些小坑。
方式有两种:
1. springloaded(无效)
<!-- https://mvnrepository.com/artifact/org.springframework/springloaded -->
<dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId><version>1.2.8.RELEASE</version><scope>provided</scope>
</dependency>
2. springboot-devtools(推荐)
首先看一下官网,简单通俗。
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html
2.1 pom文件
<!-- 热加载 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><version>2.0.0.RELEASE</version><optional>true</optional><scope>true</scope></dependency><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- fork: 如果没有配置该项配置,devtools不会起作用的,即应用不会restear --><fork>ture</fork></configuration></plugin></plugins>
2.2 异常情况说明
2.2.1 类型转换异常:
https://blog.csdn.net/m0_38043362/article/details/78064539
官网的解决方式:
按这个思路,首先在src/main/resources 目录下建立META-INF文件夹,创建spring-devtools.properties
内容:
restart.include.mapper=/mapper-[\\w-\\.]+jar
restart.include.pagehelper=/pagehelper-[\\w-\\.]+jar
最开始给我报的是类型转换异常,因为用的是shiro,所以我在properties中加入了shiro的包:
restart.include.shiro=/shiro-[\\w-\\.]+jar
后来又报thymeleaf的异常,导致项目无法启动,加入了thymeleaf的包
restart.include.thymeleaf=/thymeleaf-[\\w-\\.]+jar
再后来...
总之是哪个包报错了,就把响应的pom文件中引的这个包,在这个properties中配置一下。
最后:
spring-devtools.properties :
restart.include.mapper=/mapper-[\\w-\\.]+jar
restart.include.pagehelper=/pagehelper-[\\w-\\.]+jar
# 因为我项目中引用了 org.crazycake:shiro-redis ,所以要引用下面这个配置
restart.include.shiro=/shiro-[\\w-\\.]+jar
restart.include.thymeleaf=/thymeleaf-[\\w-\\.]+jar
restart.include.spring=/spring-[\\w-\\.]+jar
restart.include.mybatis=/mybatis-[\\w-\\.]+jar
restart.include.springframework=/org.springframework-[\\w-\\.]+jar
restart.include.springfox=/springfox-[\\w-\\.]+jar
2.2.2 小结
官网的意思是任何jar包都可以被"基本的"类加载器加载。如果你的项目是多模块的,不是每个模块都可以导入到你的IDE中。
所以需要自定义。重点是这两句。
The include
elements are items that should be pulled up into the “restart” classloader, and the exclude
elements are items that should be pushed down into the “base” classloader.
include的包含的jar包被放入了“重启”的类加载器,而exclude的包含的jar包被推入了“基本”类加载器。
All property keys must be unique. 定义的Key值必须唯一。
我个人的理解就是需要被他的类加载器加载的就不定义,如果有自己的类需要自己的类加载器,比如shiro等等,就需要定义在这个properties。devtools负责的是对基本类加载器中的类的加载。
3. IDE中使用
3.1 eclipse
打开自动编译以后,每次编译时间长短不一样。多修改保存几次就好了。如果还不行,就取消自动编译再打钩。
3.2 idea
File——>settings——>Compiler——>Build project automatically
快捷键:CTRl+ALT+SHIFT+/ ——> Registry
如果这些还是无效的话,可以试试手动编译。右键如下图。快捷键Ctrl+Shift+F9
4. 特别说明
之前出现过:
1. eclipse需要多次保存class文件才能生效。
2. 在idea上出现必须手动编译才能生效。
3. 静态资源(js.css)或者模板文件(ftl,thymeleaf)没有reload。
原因猜想:
之前安装过JRebel(热加载插件,需要收费),虽然卸载了,不知道有没有影响。
电脑的原因,换一台性能好点的电脑,上述问题就没有了。
有类似问题的,欢迎交流。
springboot-devtools idea或eclipse 热加载相关推荐
- spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃
spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃 一.springboot devtool ...
- 后端技术:SpringBoot配置热加载工具(devtools)笔记
今天给大家介绍IDEA开发工具如何配置devtools热加载工具. 1.devtools原理介绍 spring-boot-devtools是spring为开发者提供的热加载工具包. 主要原理是使用了两 ...
- SpringBoot+gradle+idea实现热部署和热加载
前言 因为之前使用myeclipes的同学就知道,在使用myeclipes的时候,java文件或者jsp文件写完之后会被直接热加载到部署的容器中,从而在开发的时候,不同经常去重启项目,从而达到了增加开 ...
- springboot mybatis 热加载mapper.xml文件(最简单)
大家好,我是烤鸭: 今天介绍一下springboot mybatis 热加载mapper.xml文件. 本来不打算写的,看到网上比较流行的方式都比较麻烦,想着简化一下. 网上流行的版本. https: ...
- SpringBoot热加载实现与类加载浅谈
SpringBoot热加载实现与类加载浅谈 热部署与热加载: 热部署和热加载都是基于类加载器实现的,热加载是服务器监听class等文件的改变然后对改变的文件进行局部加载,所以不会删除session,也 ...
- idea拦截了html中的静态资源,IDEA配置静态资源热加载操作(Springboot修改静态资源不重启)...
第一步: 修改file->settings->compiler->build project automatically 第二步: 按ctrl+shift+a,搜索Registry双 ...
- springboot基于Elasticsearch6.x版本进行ES同义词、停用词(停止词)插件配置,远程词典热加载及数据库词典热加载总结,es停用词热更新,es同义词热更新
前言:ES版本差异较大,建议跨版本的同学,可以先了解一下版本区别,建议不要跨版本使用插件或者进行项目调试. 本总结主要基于6.x版本的6.5.1(6.2.2实测可用),分词器为IK,下载地址:http ...
- spring boot的热加载(hotswap)
官网上是叫hotswap,有人翻译成热部署,有人翻译成热加载 个人倾向于使用热加载在这个词,和谷歌翻译的热插拔相似. 关于个人理解 http://www.cnblogs.com/ptqueen/p/8 ...
- Spring Boot + IntelliJ IDEA——自动部署[Spring Boot热部署]+LiveReload[前端自动刷新、热加载]解决方案
基本概念 spring-boot-devtools: Spring Boot包括一组额外的工具,这些工具可以使应用程序开发体验更加愉快.该spring-boot-devtools模块可以包含在任何项目 ...
最新文章
- Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊
- 情感分析的现代方法(包含word2vec Doc2Vec)
- 直播报名 | 零基础 零代码 AI智能营销应用现场教学
- 你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
- C-C Primer Plus阅读笔记
- 如何建立双机热备系统
- 优麒麟在linux下安装教程,在优麒麟Ubuntu Kylin系统中安装百度网盘Linux版.deb的方法...
- mysql判断不等于空的脚本_Shell脚本中判断输入变量或者参数是否为空的方法
- SAS在金融中的应用二
- linux设备驱动(一)
- STM32 JLINK接口定义 JTAG/SWD
- 编译libpng + zlib
- mmWave AWR1x Interference Detection - A crucial step to effective mitigation
- 计算机办公模式是什么,华为Mate 10“电脑模式”告诉你什么是真正的“移动办公”...
- 线下活动 | 聚焦分布式高可用的消息队列
- 四川一度智信:网店养词技巧
- AI软件视频生成工具 抖音蓝V运营小助手
- 毕业论文管理系统用例图和活动图
- 双系统下卸载Ubuntu方法
- MRF,HMM,HMRF图像分割