导图社区 SpringBoot热部署
这是一篇关于SpringBoot热部署,关键点总结的思维导图,主要内容有简介类、加载器、类加载机制、区别。
思维导图创作模版直接套用,知识卡片思维导图。模版已经提供了基本的结构和样式,用户只需要在此基础上添加或修改内容即可。
1.非常详细目标拆解方法 2.以学会炒西红柿炒鸡蛋例子讲解 3.本模板可直接用作拆解目标模板使用 4.本套方法价值10个达不溜,懂得都懂
人的行为,思想,人的一切归根到底都是情绪。管理好情绪才是管理好人生的根本,希望大家能慢慢体会,一起成长。
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
民法分论
SpringBoot热部署
概念
简介
不用重启项目,加载整个应用
类加载器
启动类加载器
隐式存在,存在于JVM里面,看不到的,只会加载JDK里面的,比如String
扩展类加载器
加载ext包下面的文件
应用程序类加载器
加载系统上下文
用户自定义类加载器
类加载机制
一个Classload里面只会存在一个相同的Class名字的Class文件,本地缓存一个Class的引用, 第二次查询会先查找本地是否存在缓存引用,如果存在,就不会加载类文件, 保证了Class对象只存在一份,保证系统核心Class文件不会被篡改, 比如String不会被第二次加载
双亲委派
一个类加载器默认情况不会自己加载Class文件,而是交给父类加载器去加载
子主题
区别
热加载
单个应用程序编译
热部署
加载整个应用编译
使用
依赖
spring-boot-devtools
原理
过程
java -> .class 文件 -> 类加载器 -> JVM 中的 .class 对象
热部署原理
发现代码有修改后,重新启动应用,速度比手动重启更快。 使用了两个ClassLoder,一个ClassLoder加载那些不会改变的类(第三方jar),另一个ClassLode加载会改变的类,成为restart ClassLoder。在发现有代码更改的时候,原来rerestart ClassLo被丢弃,重新创建一个restart ClassLoder,由于需要加载的类比较少,所以实现了较快的重启时间。 Devtools原理 1、监听classpath下面的文件变动,并会立即重启应用