1、开启idea的自动编译(静态)
具体步骤:打开顶部工具栏File | Settings | Build, Execution, Deployment | Compiler 然后勾选 Build project automatically 。
2、开启IDEA的自动编译(动态)
具体步骤:同时按住 Ctrl + Shift + Alt + / 然后进入Registry ,勾选自动编译并调整延时参数。
- compiler.automake.allow.when.app.running -> 自动编译
- compile.document.save.trigger.delay -> 自动更新文件( 它主要是针对静态文件如JS CSS的更新,将延迟时间减少后,直接按F5刷新页面就能看到效果!)
3、开启IDEA的热部署策略
具体步骤:顶部菜单- >Edit Configurations->SpringBoot插件->目标项目->勾选热更新。
到此为止,我们在项目中修改Java代码和页面,idea都会自动帮我们部署,或者通过:Ctrl + F10立即生效。
注意:
修改Java代码的时候,只支持对方法body的修改,不支持对类和方法签名的修改(比如修改类名,方法名,方法参数等),对类和方法签名的修改会引起:Hot Swap Faild错误。考虑这些限制,也是有理由的,替换类定义,就需要新类和旧类之间有一个关联,这里关联就是类的全名(或许还有其他信息),类名都改了,就不知道替换哪个类了。至于方法签名的修改,应该是考虑到运行时方法的调用,通过方法签名替换已有的方法调用。
此时,修改项目的配置文件,还做不到热部署,可以通过配置devtools插件来实现,坐标如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
注意:这个插件配置后,如果项目中使用了shiro,有可能会引起ClassCastException异常,解决方式:https://blog.youkuaiyun.com/cherry_xiu/article/details/80989774
况且在实际项目中,配置文件的内容也不会经常修改。以上的配置已经可以很方便的进行开发和测试了。
其他一些注意事项
thymeleaf模板引擎
如果项目中使用了thymeleaf模板引擎,应注意模板引擎的缓存是否开启,在配置文件中,通过
spring.thymeleaf.cache=false
来关闭。
浏览器的缓存
关闭方式:谷歌浏览器,F12