最近使用SrpingBoot和freemarker搭建项目,发现freemarker文件更改后必须重新启动才生效,网上搜了很多教程,也按照教程设置了,发现还是不行,最后发现和idea版本也有关系,在这里写下具体的坑。
前面的步骤还是都相似的,只是最后一步idea设置有区别。
第一步:pom引入spring-boot-devtools。
在xml中加上以下内容:
<!--在dependencies增加-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--在build下的plugins增加,fork属性别忘记-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
第二步:application.properties中设置禁止缓存。
这一步其实不用,springboot默认spring.freemarker.cache的值就是false,当然写上也没问题。
第三步:修改IDEA中Complier的自动构建属性。

第四步:修改Registy,这一步不同版本IDEA不一样。
常见的是:点击 Help –> Find Action..,或使用快捷键 Ctrl+Shift+A来打开 Registry…,将其中的compiler.automake.allow.when.app.running勾上。

如果你能找到这个选项,设置就没问题,但是我用的IDEA版本上并没有这个设置。
最后发现这个设置在高级设置里面。

这样设置以后,freemarkder的热部署才真正生效,不过观察下来也有几秒钟的延迟吧。
好了,最后一步真的是个坑,希望帮助到你。
