自定义类装入器的用途是什么

2022-09-01 13:52:30

最近我遇到了java自定义类装入器api。我在这里发现了一个用途,kamranzafar的博客我对类加载器概念有点陌生。任何人都可以详细解释一下,我们可能需要它或我们应该使用它的不同场景是什么?


答案 1

自定义类装入器在由多个模块/应用程序组成的大型体系结构中非常有用。以下是定制类装入器的优点:

  • 提供模块化架构允许定义允许模块化架构的多类装入器。
  • 避免冲突在类装入器中明确定义类的作用域。
  • 支持版本控制支持不同模块的同一 VM 中不同版本的类。
  • 更好的内存管理可以删除未使用的模块,从而卸载该模块使用的类,从而清理内存。
  • 从任何位置加载类类可以从任何地方加载,例如,数据库,网络,甚至可以动态定义它
  • 动态添加资源或类上述所有功能都允许您动态添加类或资源。
  • 运行时重新加载修改后的类允许您通过创建子类装入器到实际的类装入器(包含修改后的类)来重装一个或多个类运行时。

答案 2

主要用途是在应用程序服务器中,以便它们可以运行两个应用程序而不会使类发生冲突。即,如果应用程序 1 具有与应用程序 2 同名的类,则使用自定义类装入器,应用程序 1 将装入其类,而应用程序 2 将装入其类。

此外,如果一个类是由定制类装入器装入的,那么可以从 JVM 卸载该类。在应用程序服务器中同样有用。

另一个用途是用于检测 - 一种进行面向方面的编程的方法,或者使用某些持久性API时。使用自定义类装入器,您可以在将装入的类传递给正在运行的应用程序之前向它们添加行为。


推荐