springboot项目部署和访问:Boot开发中实现热部署的几种方式
springboot项目部署和访问:Boot开发中实现热部署的几种方式spring.freemarker.cache=falseFreeMarker的配置:在Spring Boot里,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面,因此,我们可以在application.properties或者application.yml中关闭模板引擎的缓存:Thymeleaf的配置:spring.thymeleaf.cache=false
开发中,每次对类的修改,都需要重启服务,很浪费时间,影响效率。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依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
如果是Eclipse,配置到这里,只要重启服务,热部署就会生效了。但是IDEA的话,热部署还不会生效,因为devTools只会在类路径上的文件发生更改时才会自动重启,而IDEA默认不会自动编译。这个时候就要配置idea的自动编译了,配置步骤如下:
勾选build project automatically.
连续按下shift键,调出搜索框,输入registry:
这时我们修改文件,Spring Boot就引入了热部署,不需要我们手动重启服务了!
如下,我们在运行服务的过程中修改某一文件,得到下面的自动重动信息: