最近写Java开始使用Idea作为开发环境,项目中使用spring boot+thymeleaf的框架组合,每次改完页面都必须重新运行项目(这速度我也是醉了),于是查看了配置文件的配置,如下:
application-dev.yml文件:
spring: thymeleaf: cache: false cache-period: 0 template: cache: false
pom.xml:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies>
由上可见thymeleaf的缓存和spring-boot-devtools的热部署都有配置,于是我怀疑配置的正确性,所以Google出一下参考,进行修改:
http://www.cnblogs.com/codetime/p/5540733.html
https://github.com/spring-projects/spring-boot/issues/
http://stackoverflow.com/questions/3765998/add-a-properties-file-to-intellijs-classpath
以上参考主要提到ressource文件不在classpath不会倍热部署扫描,但是尝试后还是无效。
无奈只能百度了,在开元中国看到一个帖子spring boot thymeleaf 热部署,提到target下的文件没有更新,于是乎我修改了一下target下的文件,刷新页面果然页面同步刷新了,
所以以上罗列的配置代码是起作用的,thymeleaf确实没有缓存。
那么问题又来了,如何让更新了的资源文件,让maven 自动同步刷新到 target 下面呢?
于是去设置了Idea的Make project automatically,如下图(盗过来的),BUT 无效!
那么问题又来了,为什么Idea 的Make project automatically设置无效?
最终只找到ctrl+s和ctrl+F9的快捷键的替代方案,但是我的电脑要使用F9件还多了个坑爹的Fn,于是找到了下面一个比较完美的解决方案:
原理:通过宏录制的方式自定义快捷键
http://my.oschina.net/fdblog/blog/172229