SpringBoot开发,配置IDEA实现代码保存实时刷新
发布于 作者:苏南大叔 来源:程序如此灵动~

SpringBoot程序员需要的效果就是热更新,而spring boot devtools
号称的效果就是:热部署。但是为啥没有期待中的效果呢?为何还需要Ctrl+f9
才能重新打包部署呢?这相比较php
之类的代码而言。Java
的代码的实时生效,实在是很难用。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,openjdk@23.0.2
,IntelliJ IDEA 2024.3.4.1
,maven@3.3.2
,spring boot@2.5.4
,java@17
。
实验样本
本文还是拿IDEA
初始化的Spring Boot
的简单项目做例子。参考文章:
这个项目,通过maven install
安装了开发时专用的插件spring boot devtools
。pom.xml
文件:
看效果的网址是:
常规方式
常规方式,就是在编辑器的顶部点击绿色的运行按钮。然后修改文件,然后再使用ctrl+f9
【重新构建】看效果。

看重点,就是说不重新编译,是看不了效果的。所以,点击maven compile
或者maven pageage
可能也是有效果的。
配置devtools热部署
spring boot devtools
安装之后,是需要做配置才能生效的。
- 修改的文件是:
application.properties
【推荐】,也可以是application.yml
,任选其一。 - 有好几个位置可以放,优先级不一样。
- 本文修改的文件是:
src/main/resources/application.properties
。
修改内容如下:
前几条内容就是restart
,后面的最后一条内容就是:禁用thymeleaf
这个默认模版的缓存。对于模版修改之后,是否需要restart
的问题。苏南大叔认为:可能需要additional-paths=src/main
,包含了java
和template
目录。
这东西的效果就是restart
,没有编译和打包。所以只能看到重启的效果,页面变化却是没有生效。

下面的这篇文章,说的挺明白的。参考:
配置IDE
配置自动编译,有两个位置。如下图所示:


配置到这里,就应该可以做到修改文件,到浏览器里面f5
就可以看效果了。但是,偶尔会有延迟。
加快编译
对于延迟的问题,这里做一下加速。按着快捷键ctrl+alt+shift+/
,进入一个“注册表”的编辑界面。修改两个值,如下图所示:


修改到这里,效果就已经非常好了。对于spring boot
项目来说,这样的设置已经足够了。
livereload
livereload
所做的是解决浏览器端需要再f5
一下的问题,并且springboot devtools
里面自带livereload
服务器。在配置文件里面启用即可。

src/main/resources/application.properties
:
然后在对应的浏览器里面安装对应的插件,即可使用。
chrome
浏览器里面的插件id
是:jnihajbhpnppcggbcgedagnkighmdlei
。下载方式参考:
能用,不过很多年没人维护这个插件了,浏览器提示已停用。
这个浏览器插件livereload
没有那么智能的,任何当前停留的页面,都可以被刷新的。无论当前停留页面和这个被监控的项目代码有没有关系。这个对应关系,是由人为的去对应的。
传统的设置(通用)
在非spring boot
时代的时候,还需要做下面的项目配置。如下图所示:


参考文章:
结语
苏南大叔的Java
经验文字,请点击下面的连接:


