在使用IDEA做SpringBoot的web项目的时候,在每一次修改了java文件或者是resource的时候,都必须去重启一下项目,这样的话浪费了很多的时间(主要是心理感觉非常烦),那么,这个时候,就需要去实现程序的热部署,能够在修改了页面的时候能够立马刷新显现出新的效果。
第一步:添加热部署的maven依赖
<!--spring-boot-devtools 热启动依赖包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
第二步:添加maven插件(一般情况下假如用maven管理建立springboot程序的时候,就会自带这个插件的,所以你可以对比一下是否有或者一样,不一样进行修改)。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 如果没有该项配置,肯定devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
第三步:修改IDEA的设置File--->Other Settings--->Default Settings----->Compiler--->Bulid project automatically打上勾,就按照下图的勾去选择就行了(勾选完毕之后,一定记得点击Apply和Ok按钮使你的选择生效)。
第四步:打开IDEA,组合键Ctrl+Shift+Alt+/,弹出下面界面,选择Registry
或者是按住组合键Ctrl+Shift+A,弹出下面界面,输入Registry,选择第一个Registry
第五步:选择Registry,勾选complier.automake.allow.when.app.running
第六步:由于在开发过程当中经常会修改html、js和css,但是浏览器是有缓存的,我们在开发过程当中可以关闭浏览器的缓存功能,一般是F12唤出开发者工具,然后勾选Disable cache
第七步:在springboot的application.properties文件当中添加下面语句
spring.thymeleaf.cache=false
到此,赶紧的去启动程序,修改,测试吧。
更新如下(2018年9月29日16:00:43):按照上面的步骤,发现还是无法实现热启动,然后研究了半天,发现,第三步,我只是设置了default setting当中的Build project automatically,setting里面没有设置,所以无法做到。需要把setting当中的Build project automatically也去设置一遍。
在application.properties还有下面两行代码:
#配置热部署
spring.devtools.restart.enabled= true
spring.devtools.restart.exclude= WEB-INF/**
如下图
我在开发项目当中,我只是想让页面修改的时候无需重启就更新页面,可以取消热启动,这样页面更新不会重启也能实时更新。
可以在main方法当中加入下面这行代码:
System.setProperty("spring.devtools.restart.enabled", "false");