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等等,就需要定义在这个propertiesdevtools负责的是对基本类加载器中的类的加载。

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(热加载插件,需要收费),虽然卸载了,不知道有没有影响。

        电脑的原因,换一台性能好点的电脑,上述问题就没有了。

        有类似问题的,欢迎交流。

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

大家好&#xff0c;我是烤鸭: 今天介绍一下springboot mybatis 热加载mapper.xml文件。 本来不打算写的&#xff0c;看到网上比较流行的方式都比较麻烦&#xff0c;想着简化一下。 网上流行的版本。 https://www.cnblogs.com/oskyhg/p/8587701.html 总结一下需要&#xff1a;my…

vue cli vue 3.x

vue cli & vue 3.x https://cli.vuejs.org/dev-guide/ui-api.html#ui-api https://cli.vuejs.org/zh/guide/#cli vue cli & how to select the option in cmd ? vue cli & 选中 option a select all & i select all 1,2,3,4,5,6,7,8,9,0 分别对应 order 转载…

jenkins svn/git sonarqube scanner 代码集成测试

大家好&#xff0c;我是烤鸭&#xff1a;今天分享一个代码检测工具sonar&#xff0c;在jenkins集成的时候使用。 环境:sonarqube 7.1jenkins 2.12xsonarqube scanner &#xff08;官网最新版3.2.0.1227&#xff09;1. jenkins svn/git 搭建项目https://blog.csdn.net/Angry…

射频与微波测量之S参数

转自&#xff1a;https://www.cnblogs.com/lyh523329053/p/9128577.html S参数 S散射也叫散射参数。是微波传输中的一组重要参数。由于我们很难在高频率时测量电流或电压&#xff0c;因此我们要测量散射参数或 S 参数。这些参数用来表征RF 元件或网络的电气属性或性能&#xff…

JAVA构造对象的几种方式(构建器、构造器)

大家好&#xff0c;我是烤鸭&#xff1a;今天说一下初始化对象的几种方式&#xff1a;1. 多参数构造器2. 构建器3. 构造器后 get/set方法举个例子:这里有个机构entity&#xff0c;提供一个默认构造器 package com.xxx.xxx.modules.sys.entity;/*** 机构Entity* versi…

Django框架(十二)-- Djang与Ajax

一、什么是Ajax AJAX&#xff08;Asynchronous Javascript And XML&#xff09;翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互&#xff0c;传输的数据为XML&#xff08;当然&#xff0c;传输的数据不只是XML,现在更多使用json数据&#xf…

javascript 将table导出 Excel ,可跨行跨列

原文地址&#xff1a;https://www.cnblogs.com/hailexuexi/p/10795887.html <script language"JavaScript" type"text/javascript">//jQuery HTML导出Excel文件(兼容IE及所有浏览器)function HtmlExportToExcel(tableid,file_name) {var filename fi…

wampserver 搭建 php环境 运行方法

大家好&#xff0c;我是烤鸭&#xff1a;今天分享的是如何用wamp 运行 php代码。1. wampserver下载&#xff1a;下载地址&#xff1a;https://sourceforge.net/projects/wampserver/files/WampServer%203/WampServer%203.0.0/Addons/Php/wampserver3_x64_addon_php7.2.7.exe…

java php des加密 byte数组16进制 DESTools

大家好&#xff0c;我是烤鸭:今天分享的是java 和 php des 加密。因为接口对接&#xff0c;难免不同语言&#xff0c;加密又是必不可少的。作为接口的提供方&#xff0c;必须把加密规则写好&#xff0c;最好有不同语言的加密demo。1. java版本的des加密解密工具类DESTools.j…

高可用Eureka注册中心配置说明(双机部署)

目 录 1. 高可用EureKa注册中心示意图 2. Eureka实例相互注册配置 3. 微服务注册到Eureka配置 4. 启动步骤及配置成功检查 5. 说明事项 1. 高可用EureKa注册中心示意图 Spring Cloud的Eureka Server的高可用实际上就是将自己作为服务向其他服注册中心注册自己&#xff0c;形成…

java 实现 常见排序算法(一) 冒泡排序

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下基础排序算法之冒泡排序。 1. 冒泡排序&#xff1a; 原理&#xff1a;比较两个相邻的元素&#xff0c;将较大的元素交换至右端。 思路&#xff1a;依次比较相邻的两个数&#xff0c;将小数放在前面&#xff0c;大…

vue学习之npm

任何一门计算机语言都包含了丰富的第三方库&#xff0c;npm就是JavaScript这门语言的第三方库管理工具&#xff0c;本文详细介绍了JavaScript的包管理工具&#xff0c;npm。 在计算机中安装好Node.js之后&#xff0c;默认已经安装好了npm包管理工具&#xff0c;我们可以输入npm…

Java 深copy 浅copy 引用copy

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下浅copy和深copy。 1. 深copy 什么是深copy&#xff0c;只复制原对象属性值&#xff0c;不管地址。 说一下业务场景&#xff1a; 如果我想创建一个对象&#xff0c;只是对原对象的某个属性值改变。普通的做法就是new 一个…

linux定时任务清理cache缓存

大家好&#xff0c;我是烤鸭&#xff1a; 如果你出现类似cache过多的情况&#xff0c;请参考这篇。 buff/cache 占了1.6G&#xff0c;多数情况下是无所谓的。但是有时候在系统内存不足的时候&#xff0c;可能会影响其他程序的执行。 之前就遇到过 jenkins 因为内存不足 集成失败…

SecureCRT Application 已停止工作

解决方法一&#xff1a; cmd ----> regedit —>HKEY_LOCAL_MACHINE\SOFTWARE\vandyke 删掉vandyke 解决方法二&#xff1a; SecureCRT使用过程中出现异常后自动关闭&#xff0c;导致下次无法正常启动&#xff08;运行程序无反应&#xff09;&#xff0c;此时一种可能的原…

SQLServer之事务简介

事务定义 事务是单个的工作单元。事务是在数据库上按照一定的逻辑顺序执行的任务序列&#xff0c;既可以由用户手动执行&#xff0c;也可以由某种数据库程序自动执行。 事务分类 自动提交事务 每条单独的语句都是一个事务。 在自动提交模式下&#xff0c; 每个数据库操作是在执…

Vmware centos无法连接网络

在vmware下安装了centos7&#xff0c;桥接模式&#xff0c;无法连接网络 解决方案一&#xff1a; 然后重启虚拟机 解决方案二&#xff1a; 然后再试试重启能否联网 解决方案三&#xff1a;

mybatis 一对一 一对多 级联查询

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下关于mybatis的级联查询。 环境&#xff1a; mybatis 3.2.8 spring 4.1.9 1. 业务场景 在一个人申请某些账号或者权限的时候&#xff0c;比如微信的认证流程。 会让你一步一步按要求输入&#xff0c;比如第一步&am…

IDEA启动tomcat报错java.util.zip.ZipException: error in opening zip file

原因CATALINA_BASE参数后面多了一个斜杠 将&#xff1a;CATALINA_BASEK:\Tomcats\apache-tomcat-9.0.10_cform\ 改&#xff1a;CATALINA_BASEK:\Tomcats\apache-tomcat-9.0.10_cform

java 实现 常见排序算法(二) 插入排序

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下基础排序算法之直接插入排序。 1. 直接插入排序&#xff1a; 原理&#xff1a;假设前面的数为有序数列&#xff0c;然后有序数列与无序数列的每个数比较&#xff0c;我们可以从右向左比较 思路&#xff1a;从第2…