我应该使用哪个 Class Loader?
Which Class Loader should I use?
JNDI 使用线程上下文 class 加载程序。
因为它的内容是由 bootstrap classes 在 rt.jar 中实现的
但核心 JNDI classes 可能会加载由独立供应商实现并可能部署在应用程序的 -class 路径中的 JNDI 提供程序。
父class加载器不能使用子class加载器加载class.
问题:
众所周知双亲委托模型的一个重要特征,
为什么不在所有地方使用系统 class 加载程序?子 class 加载器可以使用父 class 加载器加载 class.
我不太确定我理解你的问题。
尤其是在 JEE 运行时环境中,当前线程的上下文类加载器是您的最佳选择。
基本上这一切都归结为层次结构(它甚至可能被颠倒或在某处使用类似 OSGI 的东西)以及关于 classloader 层次结构中你 class 实际上在哪里的缺失知识位于。
多个 classloader 通常是必需的,因为有时需要相同 class、p.ex 的不同版本。在同一 JVM 上的不同应用程序中 运行。
JNDI 使用线程上下文 class 加载程序。 因为它的内容是由 bootstrap classes 在 rt.jar 中实现的 但核心 JNDI classes 可能会加载由独立供应商实现并可能部署在应用程序的 -class 路径中的 JNDI 提供程序。 父class加载器不能使用子class加载器加载class.
问题: 众所周知双亲委托模型的一个重要特征, 为什么不在所有地方使用系统 class 加载程序?子 class 加载器可以使用父 class 加载器加载 class.
我不太确定我理解你的问题。
尤其是在 JEE 运行时环境中,当前线程的上下文类加载器是您的最佳选择。
基本上这一切都归结为层次结构(它甚至可能被颠倒或在某处使用类似 OSGI 的东西)以及关于 classloader 层次结构中你 class 实际上在哪里的缺失知识位于。
多个 classloader 通常是必需的,因为有时需要相同 class、p.ex 的不同版本。在同一 JVM 上的不同应用程序中 运行。