双亲委派机制

一级标题

  1. 从META-INF/services/java.sql.Driver文件得到实现类名字DriverA
    Class.forName("xx.xx.DriverA")来加载实现类
  2. Class.forName()方法默认使用当前类的ClassLoader,JDBC是在DriverManager类里调用Driver的,当前类也就是DriverManager,它的加载器是BootstrapClassLoader。
  3. 用BootstrapClassLoader去加载非rt.jar包里的类xx.xx.DriverA,就会找不到
    4.要加载xx.xx.DriverA需要用到AppClassLoader或其他自定义ClassLoader
    最终矛盾出现在,要在BootstrapClassLoader加载的类里,调用AppClassLoader去加载实现类
    这个原因导致无法破坏双亲委派机制

spi, jdbc,osgi都属于破坏双亲委派机制

你可能感兴趣的:(双亲委派机制)