在 Java 中,新建或增强类加载器的用例是什么?

Jav*_*ser 2 java jvm classloader dynamic-class-loaders java-8

在 Java 中,我们知道类加载器是一个 JVM 系统,它将类加载到 JVM 中执行。当我运行一个简单的 Java 类时,它会被运行时系统加载和执行。在这里,我没有对类加载做任何事情。但是我可以看到,有很多项目在编写自定义类加载器或增强现有的类加载器。请让我知道需要类加载器增强或新类加载器的生产时间用例。

Tar*_*run 5

我现在能想到的几个用例:

  1. 您可以使用自定义类加载器在运行时替换实现(即无需重新启动服务器)。JRebel 大量使用它
    https://www.jrebel.com/blog/how-to-reload-java-classes-at-runtime

  2. Tomcat 使用类加载器在运行时分离不同的 webapps 对象范围。
    Tomcat Classloader 如何在同一个 JVM 中分离不同的 Webapps 对象范围?

  3. OSGI 使用类加载器来加载包。
    OSGi 中 Java 类加载器的使用