何时创建自定义类加载器?

时间:2012-10-08 17:37:56

标签: java classloader

为什么需要创建自定义类加载器?一个现实世界的例子会很棒!

4 个答案:

答案 0 :(得分:5)

Java EE服务器和OSGI容器等应用程序服务器使用自定义类加载器来支持动态更新和删除软件。

其他自定义类加载器用于支持动态代码注入(首选来自Java 5.0 Instrumentation)

答案 1 :(得分:4)

典型案例是:

  • 运行时的仪器/加载类。

  • 加载加密类。

  • 远程类加载。

答案 2 :(得分:2)

这不是你可能不得不自己写的东西,但你可能会使用一个作为一些复杂框架的一部分 - 例如,依赖注入通常用ClassLoaders实现。自定义类加载器的另一个常见用途是单元测试:可以使用自定义类加载器来替换被测单元加载的类" dummy"以可控方式响应的版本(例如,模拟本来难以创建的错误)。

答案 3 :(得分:1)

坦率地说,很难想象没有非标准类加载器的Java生态系统。许多松散耦合的体系结构基于类加载器。我建议用JSPF(Java Simple Plugin Framework)花几个小时,因为只有一些实际经验才对你有价值。 JSPF非常简单,不仅可以在需要自定义类加载器时理解潜在的情况,还可以感受到这种解决方案的强大功能。

尝试遵循一个简单的计划:

  • 定义界面(合同)
  • 提供独立模块/ jar
  • 的实现
  • 使用JSPF和先前定义的合同来发现可用的实现
  • 使用已发现的实施做一些有用的事情
  • 了解你有松散耦合的系统
  • 了解如何在此示例中实际使用类加载器

请同时浏览以下链接: