大家好,我是烤鸭:

今天分享一下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 热加载相关推荐

  1. spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃

    spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃 一.springboot devtool ...

  2. 后端技术:SpringBoot配置热加载工具(devtools)笔记

    今天给大家介绍IDEA开发工具如何配置devtools热加载工具. 1.devtools原理介绍 spring-boot-devtools是spring为开发者提供的热加载工具包. 主要原理是使用了两 ...

  3. SpringBoot+gradle+idea实现热部署和热加载

    前言 因为之前使用myeclipes的同学就知道,在使用myeclipes的时候,java文件或者jsp文件写完之后会被直接热加载到部署的容器中,从而在开发的时候,不同经常去重启项目,从而达到了增加开 ...

  4. springboot mybatis 热加载mapper.xml文件(最简单)

    大家好,我是烤鸭: 今天介绍一下springboot mybatis 热加载mapper.xml文件. 本来不打算写的,看到网上比较流行的方式都比较麻烦,想着简化一下. 网上流行的版本. https: ...

  5. SpringBoot热加载实现与类加载浅谈

    SpringBoot热加载实现与类加载浅谈 热部署与热加载: 热部署和热加载都是基于类加载器实现的,热加载是服务器监听class等文件的改变然后对改变的文件进行局部加载,所以不会删除session,也 ...

  6. idea拦截了html中的静态资源,IDEA配置静态资源热加载操作(Springboot修改静态资源不重启)...

    第一步: 修改file->settings->compiler->build project automatically 第二步: 按ctrl+shift+a,搜索Registry双 ...

  7. springboot基于Elasticsearch6.x版本进行ES同义词、停用词(停止词)插件配置,远程词典热加载及数据库词典热加载总结,es停用词热更新,es同义词热更新

    前言:ES版本差异较大,建议跨版本的同学,可以先了解一下版本区别,建议不要跨版本使用插件或者进行项目调试. 本总结主要基于6.x版本的6.5.1(6.2.2实测可用),分词器为IK,下载地址:http ...

  8. spring boot的热加载(hotswap)

    官网上是叫hotswap,有人翻译成热部署,有人翻译成热加载 个人倾向于使用热加载在这个词,和谷歌翻译的热插拔相似. 关于个人理解 http://www.cnblogs.com/ptqueen/p/8 ...

  9. Spring Boot + IntelliJ IDEA——自动部署[Spring Boot热部署]+LiveReload[前端自动刷新、热加载]解决方案

    基本概念 spring-boot-devtools: Spring Boot包括一组额外的工具,这些工具可以使应用程序开发体验更加愉快.该spring-boot-devtools模块可以包含在任何项目 ...

最新文章

  1. Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊
  2. 情感分析的现代方法(包含word2vec Doc2Vec)
  3. 直播报名 | 零基础 零代码 AI智能营销应用现场教学
  4. 你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
  5. C-C Primer Plus阅读笔记
  6. 如何建立双机热备系统
  7. 优麒麟在linux下安装教程,在优麒麟Ubuntu Kylin系统中安装百度网盘Linux版.deb的方法...
  8. mysql判断不等于空的脚本_Shell脚本中判断输入变量或者参数是否为空的方法
  9. SAS在金融中的应用二
  10. linux设备驱动(一)
  11. STM32 JLINK接口定义 JTAG/SWD
  12. 编译libpng + zlib
  13. mmWave AWR1x Interference Detection - A crucial step to effective mitigation
  14. 计算机办公模式是什么,华为Mate 10“电脑模式”告诉你什么是真正的“移动办公”...
  15. 线下活动 | 聚焦分布式高可用的消息队列
  16. 四川一度智信:网店养词技巧
  17. AI软件视频生成工具 抖音蓝V运营小助手
  18. 毕业论文管理系统用例图和活动图
  19. 双系统下卸载Ubuntu方法
  20. MRF,HMM,HMRF图像分割

热门文章

  1. [css] 你用过css的tab-size属性吗?浏览器默认显示tab为几个空格?
  2. 前端学习(2165):vuecli3创建项目和目录结构
  3. 前端学习(1718):前端系列javascript之生命周期上
  4. 前端学习(1678):前端系列实战课程之声明和创建游戏地图
  5. 前端学习(1555):ng-app指令
  6. 前端学习(1059):ES6中的类和对象
  7. 前端学习(511):两列布局的第一种方式
  8. 前端学习(142):行级标签和块级标签
  9. mybatis学习(26):插入功能(插入数据)
  10. CentOS7搭建NTP服务器