Spring Boot2.0之热部署原理

Posted toov5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot2.0之热部署原理相关的知识,希望对你有一定的参考价值。

所谓的热部署:比如项目的热部署,就是在应用程序在不停止的情况下,实现新的部署

原理: 实用类加载器(classloader重新读取字节码文件到jvm内存)

如何纯手写一个热部署功能:

 1、监听 class文件是否发生改变  版本号、修改时间  作对比

 2、如果发生改变就用classloader进行重新读取

 

热部署要是用在生产环境,性能很差了。不安全!

热部署用在本地开发(eclipse idea)用来提高效率

Spring Boot使用 devtools做热部署

有些工具是有热部署的功能的

修改完代码---》然后按保存--》访问时候其实会重启

 

 访问引发重启!

这样读到的都是新的:

package com.toov5.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.extern.slf4j.Slf4j;

@RestController
@Slf4j
public class IndexController {
    @Value("${name}")
    private String name;

    @RequestMapping("/index")
    public String index() {
        String result = "修改啊来啊";
        log.info("result:{}", result);
        return result + name;
    }

}

访问:

 

 devtools修改的原因是 重启!

 

以上是关于Spring Boot2.0之热部署原理的主要内容,如果未能解决你的问题,请参考以下文章

1. Spring boot 之热部署

Spring Bootz之热部署

spring-boot 速成 devtools之热部署

springboot之热部署

Spring Boot2.0之 原理—创建内置Tomcat容器

SpringBoot初始教程之热部署