原创  Ideal+spring boot+thymeleaf 的热部署问题处理

分类: 2016-07-24T17:28:22    6029人阅读   

最近写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://juplo.de/fix-hot-reload-of-thymeleaf-templates-in-spring-bootrun/

https://github.com/spring-projects/spring-boot/issues/

http://stackoverflow.com/questions/34655114/how-do-i-enable-thymeleaf-live-reloading-in-spring-boot-1-3

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




分享到: