Spring Boot2.0之热部署原理详解编程语言

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

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

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

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

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

 

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

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

Spring Boot使用 devtools做热部署

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

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

Spring Boot2.0之热部署原理详解编程语言

 

 访问引发重启!

这样读到的都是新的:

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; 
    } 
 
}

访问:

Spring Boot2.0之热部署原理详解编程语言

 

 devtools修改的原因是 重启!

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16157.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论