idea修改代码后没有重新编译_SpringBoot中实现代码修改之后的自动更新与热加载...

8d253e9116b3304cbfbba57d93aea44b.png

在实际的开发过程中,我们经常修改代码之后,手动的重启项目,查看修改效果。那么有没有一种方式能够快速的、自动的帮我们将修改代码自动更新,避免手动重启,从而提高开发效率呢?是有的,对于这个功能很多人对功能的叫法有争议,也没有权威的定义,笔者知道的就有:热启动、热加载、热更新、热部署。笔者觉得“热加载”可能更准确一些。但是叫什么并不重要,实现了最重要!

1.1.引入devtools的maven依赖

org.springframework.boot spring-boot-devtools true

spring-boot-devtools从名称就可以看出来,是开发者工具包,其主要的功能就是实现热加载。其实现原理就是两个ClassLoader,一个负责加载那些不会经常改变的文件,比如:第三方jar包;一个负责加载可能经常改变的类,比如我们自己在项目中写的代码,被称为restart ClassLoader。当有代码发生改变的时候,重建一个restart ClassLoader,原有的restart ClassLoader被丢掉。由于每次重新加载的内容较少,所以速度比手动重启更快一些。

org.springframework.boot spring-boot-maven-plugin true

在 plugin 中配置另外一个属性 fork,并且配置为 true。

1.2.设置IDEA

运行时编译配置:组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running” 。

7db1e90cecf94d63b878eb356932b347.png

自动化编译配置: “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically” 。这是一种重新自动化的编译整体项目的方法。但是笔者一般不这么做,因为IDEA的文件是自动保存的,你想修改一个字符串,有可能你只修改完成第一个字符它就重新编译了。所以,笔者一般修改完成之后,使用Ctrl + Shift + F9快捷键对修改类重新编译,而不是做项目的自动化整体编译。

20fade5bb40b1d2d029f93ba5673f52e.png

1.3 进行一下application.properties配置

在有些版本我们需要配置热加载生效的开关,使其值等于true。下文是properties格式配置,喜欢yml格式的同学可以自行调整一下。

#热加载生效spring.devtools.restart.enabled=true#额外新增的热加载目录spring.devtools.restart.additional-paths= src/main/java#热加载排除目录#spring.devtools.restart.exclude= 

默认情况下,支持热加载的目录如下,如果需要其它目录下文件支持热加载需要手动配置:

  1. /META-INF/maven
  2. /META-INF/resources
  3. /resources
  4. /static
  5. /public
  6. /templates

改一下代码,看看会不会生效。通常不生效的原因有两种:

  • JDK编译版本和运行版本不同意,自行学习一下IDEA环境下JDK配置
  • 浏览器缓存或者其他的缓存软件导致的问题

写在最后

点击我的头像进入我的主页,底栏导航里还有更多技术精品合集

本号只做持续的知识输出,希望您能关注、评论、转发!您的支持是我不竭的创作动力!让知识产生价值、让程序员改变世界!

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

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

相关文章

WINCE6开机进度条

大致思路,在NBoot或EBoot加开机进度条,由于WINCE启动主要时间都花在读取NK,因此每读取一定的页,就在屏上画一条固定高度的线,并记录画线的位置,下次接着画,直到读取完NK,这样就产生的…

电脑查看wifi密码

右键 打开“网络。。。。。。”

软件oem要注意什么_做化妆品oem,选择化妆品包材要注意什么问题

化妆品企业找厂家做oem,一般厂家都是负责设计研发生产的,但是设计出来的产品包材,就需要找其它的包材厂家去采购了,很多没有经验的品牌商都不清楚找包材要怎么找,好看质量好就可以了吗?韵丽生物科技化妆品代…

等高线转dem

可以自行设置分辨率

登录验证应该是进行在客户端还是服务器端_网站登录认证方式

目前大部分软件系统资源访问都是使用HTTP协议,HTTP是无状态的协议,每次请求默认都是相互独立的。但是大部分情况下我们需要记录请求资源的用户信息,也就是保存会话,从而对资源的访问做限制,这是我们认证功能。常用的认…

arcgis将点的属性赋值给面

例子:将点的编号属性列赋值到对应的面属性

arcgis投影数据计算度分秒

原始数据投影坐标系 1.先将图层坐标改为地理坐标系 2.添加字段必须是文本类型,否则计算不出度分秒的形式,只显示十进制 错误示例(字段类型为双精度) 正确示例(字段类型为文本类型)

arcgis裁剪后发现部分矢量缺失

解决办法 1.先修复几何 2.再进行裁剪 修复几何 修复的内容如下

arcgis快速创建斜坡单元剖面线

本教程做出的剖面只能用作参考,实际工作中需要进行修改 一、数据: 1.斜坡单元 DEM 步骤 利用DEM做出坡向2.提取斜坡单元内部点数据 提取斜坡单元边界线数据 提取坡向数据至点属性 3.给带有剖面点的数据添加xy坐标字段,数据类型选择数值型 添…

mapgis转arcgis数据后发现属性表内没有数据

示例: 编辑点属性结构 将注释赋为属性

分享50款非常漂亮的桌面壁纸

我喜欢根据季节更换桌面壁纸,换上一张清爽的桌面壁纸,心情也会变得舒畅。所以,今天我为大家收集了一批夏天壁纸,虽然夏天还未到来,不过这些壁纸真的非常漂亮,尽情欣赏吧。 (编译来源&#xff1a…

获取字段 命名空间和类_系统架构之命名规范

数据库设计规范表设计规范表名全部小写,单词间通过_间隔主键命名为id,类型为Long,长度为20位,非自增2. 外键及索引命名规范唯一索引:ux_表名_索引字段。如:ux_resource_code普通索引:ix_表名_索…

arcgis创建剖面线execl文件

如何快速创建剖面线,参考https://blog.csdn.net/qq_39397927/article/details/118730100 由于创建完的剖面线不带有野外编号,所以我们需要进行空间连接,因为斜坡单元转点后的数据是具有编号,所以进行空间连接将斜坡编号赋值给剖面…

arcgis计算地形起伏度

不懂的方面请进群询问

由于在客户端检测到一个协议错误_TLS协议的分析

TLS概述TLS(传输层安全性)协议基于SSL(安全套接字层)协议,该协议最初由Netscape开发,用于增强Internet上的电子商务安全性。SSL是在应用程序级实现的,直接位于TCP(传输控制协议&…

利用envi对landsat8数据进行处理

envi5.3打开landsat头文件数据有问题 应用商店插件下载链接附有安装教程 envi应用商店.zip_envi商店-互联网文档类资源-CSDN下载 需要在应用商店下载对应工具 点击下载好的工具 此处点击完后直接在envi最上面open文件landsat头文件 选择波段加载影像 进行辐射定标 选择多光谱…

利用arcgis对斜坡单元批量后处理

之前作者利用arcgis自定义工具箱创建了利用dem生成斜坡单元的工具箱,工具箱下载链接如下 ArcGIS自动生成斜坡单元_arcgis生成斜坡单元,arcgis斜坡单元-互联网文档类资源-CSDN下载 在前几天用户使用过程中出现了一些问题 发现工作空间还是作者电脑路径 需要将此取…

大型网站的负载均衡器、db proxy和db

大型网站的负载均衡器、db proxy和db 本文主要分析网站后台架构中的负载均衡器,企业常用的硬件负载均衡器软件负载均衡器、数据库代理服务器和数据库。 1.1 负载均衡 在大型网站部署中,负载均衡至少有三层部署。第一层为web server或者缓存代理之上的负载…

连接网络后浏览器却上不了网

解决在IE浏览器中 更新后的系统IE浏览器需要搜索才能出现 完成