首页 > 科技 > Spring Boot开发中实现热部署的几种方式

Spring Boot开发中实现热部署的几种方式

开发中,每次对类的修改,都需要重启服务,很浪费时间,影响效率。Spring Boot作为一站式开发的优良工具,那么就要使用它的热部署功能,避免每次都要手动去重启服务。


关于热部署,分为以下几类:

1、模板热部署

在Spring Boot里,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面,因此,我们可以在application.properties或者application.yml中关闭模板引擎的缓存:

Thymeleaf的配置:

spring.thymeleaf.cache=false

FreeMarker的配置:

spring.freemarker.cache=false

Groovy的配置:

spring.groovy.template.cache=false

Velocity的配置:

spring.velocity.cache=false

2、Spring Loaded

Spring Loaded可实现修改类文件的热部署。下载链接为(https://repo.spring.io/release/org/springframework/springloaded/1.2.5.RELEASE/springloaded-1.2.5.RELEASE.jar),Github地址是:https://github.com/spring-projects/spring-loaded


从上图中的介绍可以看出:spring-loaded是Java代理,可在正在运行的JVM中重新加载类。开发中使用方法就是下载到本地,然后配置run configurations:




在Arguments标签页的vm arguments中填入如下内容:-javaagent:/data/jar/springloaded-1.2.5.RELEASE.jar -noverify:


3、JRebel

JRebel是Java开发热部署的最佳工具,其对Spring Boot也提供了极佳的支持。由于JRebel为收费软件,但可试用几天,暂不做演示。

4、spring-boot-devtools

这篇文章主要来讲一讲spring-boot-devtools的热部署配置,以及在idea配置好后不起作用的解决办法。

在Spring Boot项目中添加spring-boot-devtools依赖:

org.springframework.boot            spring-boot-devtools        


如果是Eclipse,配置到这里,只要重启服务,热部署就会生效了。但是IDEA的话,热部署还不会生效,因为devTools只会在类路径上的文件发生更改时才会自动重启,而IDEA默认不会自动编译。这个时候就要配置idea的自动编译了,配置步骤如下:


勾选build project automatically.

连续按下shift键,调出搜索框,输入registry:



这时我们修改文件,Spring Boot就引入了热部署,不需要我们手动重启服务了!

如下,我们在运行服务的过程中修改某一文件,得到下面的自动重动信息:


本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.kgula.com/article/2221663.html

setTimeout(function () { fetch('http://www.kgula.com/stat/article.html?articleId=' + MIP.getData('articleId')) .then(function () { }) }, 3 * 1000)