springboot当中的类加载器
在 Spring Boot 中,类加载器(ClassLoader)扮演了非常重要的角色,尤其是在应用启动、依赖管理、热部署和模块化等方面。Spring Boot 使用了标准的 Java 类加载机制,但在此基础上进行了扩展和优化,以满足其快速开发和运行的需求。
以下是对 Spring Boot 中类加载器的详细介绍:
1. Java 的类加载器基础
在深入 Spring Boot 的类加载器之前,先回顾一下 Java 中的标准类加载器体系:
(1)启动类加载器(Bootstrap ClassLoader)
- 负责加载核心 Java 类库(如
java.lang.*
、java.util.*
等),这些类通常位于rt.jar
文件中。 - 启动类加载器是由 JVM 实现的,通常是用本地代码实现的(C/C++)。
(2)扩展类加载器(Extension ClassLoader)
- 负责加载
$JAVA_HOME/lib/ext
目录下的 JAR 包或由系统属性java.ext.dirs
指定路径中的类。 - 它是
sun.misc.Launcher$ExtClassLoader
的实例。 <