类加载以及执行子系统的案例与实战

2018-11-25  本文已影响4人  简书徐小耳

tomcat:正统的类加载器架构

总结:
commonclasloaer,catalinaclassloader,sharedclassloader是按照传统的双亲加载模式,加载指定目录的类,而webappclassloader,则释放没有这样实现,其具体的如下(这样写的好处就是可以隔离每个应用):
webappclassloader的加载过程
首先检测webappclassloader是否已经加载过了该类
如果没有在检测jvm是否已经加载过该类
如果没有我们尝试用扩展类去加载这样就避免了我们jdk的核心类被我们webappclassloader
给覆盖。
如果加载失败,或者不需要扩展类去加载我们根据类名判断
是否需要交给我们的父类进行加载(也就是所谓sharedclassloader)
如果不需要 则我们自己加载
如果我们自己加载失败 则我们尝试让sharedclassloader加载
如果还是失败则抛出异常

上一篇 下一篇

猜你喜欢

热点阅读