39、springboot——热部署
热部署
在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,
我们希望不重启应用的情况下,程序可以自动部署(热部署)。有以下四种情况,如何能实现热部署。
1、模板引擎
在Spring Boot中开发情况下禁用模板引擎的cache 页面模板改变ctrl+F9
可以重新编译当前页面并生效
2、Spring LoadedSpring
官方提供的热部署程序,实现修改类文件的热部署 下载Spring Loaded(
添加运行时参数; -javaagent:C:/springloaded-1.2.5.RELEASE.jar –noverify
3、JRebel
收费的一个热部署软件
安装插件使用即可
4、Spring Boot Devtools(推荐)
这里我就以测试Spring Boot Devtools为例
创建一个简单的springboot应用,只导入了web模块
创建一个HelloController
@RestController public class HelloController { @GetMapping("/hello") public String hello(){ return "hello"; } }
开启服务访问没问题
HelloController编译后的class文件
此时我们修改路径映射
@RestController public class HelloController { @GetMapping("/aaa") public String hello(){ return "hello"; } }
如果IDEA没有开启自动编译的话则需要手动Ctrl+F9进行构建重新编译构建
重新编译之后,class文件就修改了
但是访问aaa路径还是无效
需要重启服务才有生效,每次修改就得重启服务会很麻烦,此时我们就可以用上热部署
导入devtools 依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
之后每次修改完了代码,只要按Ctrl+F9重新编译后,项目就会自动重新部署(热部署)
在eclipse中需要热部署的话也是先导入依赖,但只需要按Ctrl+S保存即可,因为保存即重新编译