• 双亲委派机制


    1、双亲委派机制

      当一个类加载器收到一个类的加载请求时,它首先不会自己尝试去加载它,会给它的父加载器去完成,层一层的委派,因此所有的加载请求最终都会传送到顶层启动类加载器中,只有当父加载器反馈无法加载这个类的时,子类加载器才会尝试自己去加载。

      正常加载类的流程,按照AppClassLoader->ExtensionClassLoader->BootStrapClassLoader这个顺序加载。

    如果不遵循上述这个过程,就是打破双亲委派机制了。双亲委派机制过程都是在loadClass中实现的。如果想要打破这种机制,就要重写其中的loadClass方法,使其不能进行双亲委派机制。

    例子:

      Tomcat是web容器,一个web容器可能需要可能需要部署多个应用程序,不同应用程序,不同应用程序可能会依赖同一个第三方库的不同版本,但是不同版本中某一个类的全路径名可能是一样的,比如多个应用依赖test.jar,但是A应用依赖的是1.0版本,B是2.0版。这两个版本中都有一个类是com.test.xxx。如果采用默认双亲委派机制是会避免加载同一个类的,所以Tomcat必须破坏打破双亲委派机制,为每个容器提供了一个webAppClassLoader加载器。每个自定义类加载器重写了loadClass方法,会优先加载当前应用下的类,加载不到时再交给父类去加载。

  • 相关阅读:
    学生信息录入系统
    作业11(增删改查listview)
    作业10(qq增删改查)
    作业9
    作业8
    作业7
    右键打开Windows Terminal
    axure 动态面板中滚动条
    TortoiseSVN服务端的配置与使用
    hfs使用小技巧
  • 原文地址:https://www.cnblogs.com/Alei777/p/16493870.html
Copyright © 2020-2023  润新知