java - 为什么我们需要上下文类加载器

标签 java contextclassloader

我想知道为什么Java为线程引入了contexClassLoader。我知道它通常由必须动态查找和加载类的框架和应用程序服务器使用。

但是我不明白为什么 Java 引入了 contexClassLoader,因为我们只需添加将保存必要的类加载器的字段即可实现相同的功能。

class ThreadWithCustomClassloader extends Thread
{
    ClassLoader threadClassLoader;

    public void run()
    {
       //use threadClassLoader to dynamically find and load classes
    }
}

最佳答案

我很困惑 - 类加载器的实例变量正是 Thread 类用来实现这一点的。您的解决方案有何不同?

你介意二传手吗?设置类加载器对于能够在完全不同的环境(Web 应用程序)中重用相同的线程(例如在 servlet 容器中)非常重要。线程实例被认为是昂贵的......

关于java - 为什么我们需要上下文类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534160/

相关文章:

java - JAXRS 2.0 客户端 : FOLLOW_REDIRECTS property doesn't work

java - 为什么当字面上调用方法时,java不能使用线程上下文类加载器?

java - 数组交换 - 二维数组

Java Apache CLI OptionBuilder 不作为生成器模式工作

java - 使用 PDFBox 将 Type3 字体字符渲染为图像

java - getResourceAsStream 在一种情况下返回 null,但在另一种情况下不返回 null,具有相同的类路径

java - 无法使用主线程的上下文类加载器将 Web 应用程序添加到 @SpringBootApplication 的内置 Tomcat

clojure - 为什么 Clojure 默认使用上下文类加载器?

java - 在 ClassLoader 上调用 `defineClass` 会导致 "No matching method found"

JavaFx8 Tableview 更新 ObservableList