Spring Boot项目中自动reload模板文件

最近在研究Spring Boot, 这东西挺好的, 一切都从一个main方法开始, 把很多东西都集成在里面了.

下面是我研究时写的一些代码.
https://github.com/zjumty/spring-boot-demo

有兴趣的可以从上面的代码开始创建项目, 比直接从头自己写快一些.
集成了MyBatis, jetty, freemarker.

但是在学习过程中发现一个问题, 就是改了ftl模板, 刷新页面没有自动更新(我用的IDEA).
不像IDEA对典型web应用程序的支持, 只要改了ftl的内容, 转头刷新页面就出来了.
当然要把Freemarker的属性template_update_delay设置为0.

在Spring Boot的文档中说只要在application.properties或application.yml中设置如下属性就可以:

spring.freemarker.cache=false


我设置了也不能自动刷新. template_update_delay同时设置也不行.

后来才发现: 你需要Make一下才可以. IDEA快捷键Ctrl+F9

其实Spring-Boot还支持hotswap. 需要配置一下, 你就可以不用重启程序就可以把修改的代码替换为新的.

首先修改POM文件:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>springloaded</artifactId>
    <version>1.2.3.RELEASE</version>
</dependency>

plugin也改一下
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>${spring-boot.version}</version>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.3.RELEASE</version>
        </dependency>
    </dependencies>
</plugin>

我用的是java8, 如果之前的jdk可以用1.2.2.RELEASE也可以. 我在写这篇文章时, 1.2.3还没有放到maven的官方库里, 只能从spring的库里得到:

    <repositories>
        <repository>
            <id>spring-release</id>
            <url>http://repo.spring.io/release</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-release</id>
            <url>http://repo.spring.io/release</url>
        </pluginRepository>
    </pluginRepositories>


然后把springloaded-1.2.3.RELEASE.jar下载下来, 放到项目的lib目录, 名字自己决定.
然后把IDEA的run参数里VM参数设置为:

-javaagent:.\lib\springloaded-1.2.3.RELEASE.jar -noverify

然后启动就可以了.

在这里之后直接改java文件, CTRL+F9编译, 然后刷新页面就可以了.







直接修改Java文件, Ctrl+F9





最后要说的是, 这个HotSwap功能时不时的会出问题. 反正用不用自己决定啦. 我也不是很推荐.

猜你喜欢

转载自zjumty.iteye.com/blog/2197484