springboot热部署(一)——Java热部署与热加载原理
2023-09-27 14:23:44 时间
一、概述
在应用运行的时升级软件,无需重新启动的方式有两种,热部署和热加载。
对于Java应用程序来说,
热部署就是在服务器运行时重新部署项目,——生产环境
热加载即在在运行时重新加载class,从而升级应用。——开发环境
二、实现原理
热加载的实现原理主要依赖java的类加载机制,在实现方式可以概括为在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。
对比反射机制,反射是在运行时获取类信息,通过动态的调用来改变程序行为; 热加载则是在运行时通过重新加载改变类信息,直接改变程序行为。
热部署原理类似,但它是直接重新加载整个应用,这种方式会释放内存,比热加载更加干净彻底,但同时也更费时间。
深入的原理解析,参考importNew:http://www.importnew.com/17115.html
Tomcat实现热部署的三种配置方式:http://blog.csdn.net/nlwangxin/article/details/49734659
三、自定义ClassLoader实现热加载
相关文章
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com
- Java 流(Stream)、文件(File)和IO
- Akka与Java内存模型的关系
- Java ThreadLocal的使用
- JAVA 8:Lambdas表达式初体验
- Java: final
- 【Java】SpringBoot 中从application.yml中获取自定义常量
- Java CPU使用率过高分析
- Java 岗面经:两年半经验,面 10 个公司,经 28 轮面试,拿 9 个 offer,涨麻了。
- Maven+SpringBoot+Java 搭建restful 接口API框架到docker部署及遇到的问题记录
- Java SpringBoot 手记
- 聊聊Java SPI机制
- Java学习-089-springboot 通过 Spring Initializr 创建服务及IDEA导入后配置更新示例
- Java学习-085-Springboot 解决 InetAddress.getLocalHost().getHostName() took 13387 milliseconds to respond. Please verify your network configuration
- Java学习-061-Springboot logback 日志配置
- SpringBoot入门二(java代码方式配置)
- java中方法的递归调用
- 【Java】定义魔法数字,以及枚举类的构造方法的使用
- 开源框架 Java 管理系统
- Java SpringBoot Thymeleaf模板
- Java SpringBoot 创建第一个应用程序 helloword
- 通过环境变量修改java版本不生效