Thread.getContextClassLoader()详解.docVIP

  • 126
  • 0
  • 约2.87千字
  • 约 3页
  • 2018-06-27 发布于河南
  • 举报
Thread.getContextClassLoader()详解

这个问题经常出现在编写框架代码 , 需要动态加载很多类和资源的时候 . 通常当你需要动态加载资源的时候 , 你至少有三个 ClassLoader 可以选择 : 2??????? 系统类加载器或叫作应用类加载器 (system classloader or application classloader) 2??????? 当前类加载器 2??????? 当前线程类加载器 上面的问题指的是最后一种类加载器 . 哪种类加载器是正确的选择呢 ? 第一种选择可以很容易地排除 : 系统类加载器 (system classloader). 这个类加载器处理 -classpath 下的类加载工作 , 可以通过 ClassLoader.getSystemClassLoader() 方法调用 . ClassLoader 下所有的 getSystemXXX() 的静态方法都是通过这个方法定义的 . 在你的代码中 , 你应该尽量少地调用这个方法 , 以其它的类加载器作为代理 . 否则你的代码将只能工作在简单的命令行应用中 , 这个时候系统类加载器 (system classloader) 是 JVM 最后创建的类加载器 . 一但你把代码移到 EJB, Web 应用或 Java Web Start 应用中 , 一定会出问题 . ????? 所以我们来看第二种选择 : 当前上下文环境下的类加载器

文档评论(0)

1亿VIP精品文档

相关文档