最近我遇到了java自定义类加载器api。我在这里发现了一个用途,kamranzafar's blog 我对类加载器概念有点新意。任何人都可以详细解释,我们可能需要它的不同场景是什么,或者我们应该使用它?
答案 0 :(得分:27)
自定义类加载器在由多个模块/应用程序组成的大型体系结构中非常有用。以下是自定义类加载器的优点:
答案 1 :(得分:12)
主要用途是在应用程序服务器中,以便它们可以运行两个应用程序而不会使类发生冲突。即如果应用程序1具有与应用程序2同名的类,则自定义类加载器应用程序1将加载其类,应用程序2将加载其类。
此外,如果类由自定义类加载器加载,则可以从JVM卸载该类。在应用程序服务器中再次有用。
另一种用途是用于检测 - 一种进行面向方面编程或使用一些持久性API的方法。使用自定义类加载器,您可以在将已加载的类传递给正在运行的应用程序之前向其添加行为。
答案 2 :(得分:2)
Java类加载器的功能与名称相同:将类加载到内存中以便可以使用它们。
类也与加载它们的ClassLoader链接。
自定义类加载器因此开辟了各种有趣的可能性:
普通的Java应用程序通常不需要担心类加载器。但是,如果您正在编写需要托管其他代码的框架或平台,那么它们就变得更加重要/相关。