https://blog.csdn.net/jjclove...
https://blog.csdn.net/u013568...
https://zhuanlan.zhihu.com/p/...
什么是双亲委派模型?
双亲委派模型优势?
-1. 使得 Java 类随着它的类加载器一起具有一种带有优先级的层次关系,从而使得基础类得到统一
-2. 避免了多份同样字节码的加载
双亲委派模型缺陷?举例说明->SPI->怎么破?->使用线程上下文类加载器(ContextClassLoader)加载
tomcat的类加载机制?
这样就存在一个问题:SPI 的接口是 Java 核心库的一部分,是由BootstrapClassLoader加载的;SPI实现的Java类一般是由AppClassLoader来加载的。
BootstrapClassLoader是无法找到SPI的实现类的,因为它只加载Java的核心库。
它也不能代理给AppClassLoader,因为它是最顶层的类加载器。也就是说,双亲委派模型并不能解决这个问题
https://zhuanlan.zhihu.com/p/...
如何定义自已的类加载器?
1、继承java.lang.ClassLoader
2、重写父类的findClass方法
因为JDK已经在loadClass方法中帮我们实现了ClassLoader搜索类的算法,当在loadClass方法中搜索不到类时,loadClass方法就会调用findClass方法来搜索类,所以我们只需重写该方法即可。如没有特殊的要求,一般不建议重写loadClass搜索类的算法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。