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保存即可,因为保存即重新编译

原文地址:https://www.cnblogs.com/lyh233/p/12716626.html