在Spring Boot中,可以实现Java类和模板引擎的热部署(自动重载)

在Spring Boot中,是否可以进行热部署的操作?我在思考这个问题并进行研究时,发现可以使用一个名为Springloaded的工具来实现热部署,所以我尝试了一下。
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-reload-static-content
※这是第78.4节:”在不重新启动容器的情况下重新加载Java类”。

由于可以应用于Java类和模板引擎,我将它们一起整理在这里。

pom.xml文件的配置

我們將添加對SpringLoaded的依賴,如下所示。

 <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <dependencies>
                 <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>springloaded</artifactId>
                         <version>1.2.0.RELEASE</version>
                 </dependency>
         </dependencies>
 </plugin

请从以下版本中选择任意一个Springloaded(建议选择最新版本)。
http://mvnrepository.com/artifact/org.springframework/springloaded

Spring Boot的虚拟机参数配置

根据公式指南,只需要对上述的pom.xml进行设置就可以了,但实际上没有这样做是不行的。

在STS中,右击项目 -> 【作为运行】 -> 【运行配置】 -> 【Java应用程序】 -> 【项目名称】-> 参数选项卡 -> 虚拟机参数, 输入以下内容。

-javaagent:M2REPO/repository/org/springframework/springloaded/1.2.1.RELEASE/springloaded-1.2.1.RELEASE.jar -noverify
请将”M2REPO”替换为每个人的Maven本地库路径。
请将”1.2.1″替换为要使用的版本。

通过这样做,可以使Springloaded生效。
接下来是关于模板引擎的自动重新加载。

Thymeleaf模板自动重新加载。

将以下内容添加到application.properties(或YML)文件中。

spring.thymeleaf.cache=false

FreeMarker模板的自动重载

将以下内容添加到application.properties(或YML)中。

spring.freemarker.cache=false

动态重载Groovy模板

请在application.properties(或YML)中添加以下内容。

spring.groovy.template.cache=false

Velocity模板自动重新加载

请在 application.properties(或YML)文件中添加以下内容。

spring.velocity.cache=false

2016/4/27 补充
如果您正在使用Spring Boot1.3以上的版本,建议不要再使用 Spring Loaded,因为它的开发已经停止了。建议改用可以在Spring Boot1.3及以上版本中使用的Spring Dev Tools。

我发现Spring Boot1.3以上版本无法很好地运行Spring Loaded,所以我改用了Spring Devtools,结果正如我所期待的一样。

苏君1899,Spring Loaded已经停止开发了,所以最好不要使用它。相反,您可以使用从1.3版本开始提供的Dev Tools。— Toshiaki Maki (@making) 2016年4月4日

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>
广告
将在 10 秒后关闭
bannerAds