经过谷歌后我确实找不到一个如何使用Thread.getContextClassLoader()的例子,
也许这个问题重复如下 Difference between thread's context class loader and normal classloader
我的问题回顾如下: 我知道使用Thread.getContextLoader的场景,/ lib / art.jar中包含的Becasue JNDI核心类 但是那些JNDI Core(可能它们只是一些接口)没有bean实现,在其他工作中如果你想使用JNDI的函数你必须提供 一个JNDI的实现,然后我们将这些实现(可能是jar)放入系统类路径中, 但是现在核心JDNI类是由Bootstrap加载的,那些核心类必须使用它的实现类, 好吧,我们为他提供一个Thread.getContextClassLoader()(如果你没有任何默认的操作是ClassLoader.getSystemClassLoader()),它现在可以加载它们, 我只是假设为什么核心JNDI类使用这种方式直接获取systemClassLoader'ClassLoader.getSystemClassLoader()'?
也许我解释的一些观点不正确..
&LT 1为卤素;但我只是想了解我们是否可以使用 Thread.getClassLoader()的ClassLoader.getSystemClassLoader()实例 加载系统类路径类或资源在哪些类中 由bootstrap类加载器加载?
答案 0 :(得分:1)
Thread.getContextClassLoader()
不是从头开始引入java的。它在多类加载器环境中非常有用,对于在容器中运行的Java EE应用程序来说很快就会为每个企业应用程序分配私有类加载器。因此,可以使用上下文类加载器检索与此应用程序打包的资源。
它也用于公共系统的自我配置,如commons logging和log4j。