所谓的热部署:比如项目的热部署,就是在应用程序在不停止的情况下,实现新的部署
原理: 实用类加载器(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修改的原因是 重启!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16157.html