加载程序组件

目录

简介

Loader 元素表示用于加载 Web 应用程序的 Java 类和资源的Web 应用程序类加载程序。此类加载程序必须遵循 Servlet 规范的要求,并从以下位置加载类

  • 从 Web 应用程序中的 /WEB-INF/classes 目录。
  • 从 Web 应用程序中的 /WEB-INF/lib 目录中的 JAR 文件。
  • 从 Catalina 全局提供给所有 Web 应用程序的资源。

Loader 元素可以嵌套在 Context 组件中。如果未包含,将自动创建默认的 Loader 配置,这足以满足大多数要求。

有关 Catalina 实现的类加载程序层次结构的更深入描述,请参阅 ClassLoader HowTo

以下描述使用变量名称 $CATALINA_BASE 来引用大多数相对路径解析到的基本目录。如果您尚未通过设置 CATALINA_BASE 目录来为多个实例配置 Tomcat,则 $CATALINA_BASE 将设置为 $CATALINA_HOME 的值,即您安装 Tomcat 的目录。

属性

通用属性

Loader 的所有实现都支持以下属性

属性 描述
className

要使用的实现的 Java 类名。此类必须实现 org.apache.catalina.Loader 接口。如果未指定,将使用标准值(如下所定义)。

delegate

如果希望类加载器遵循标准 Java2 委托模型,并在查看 Web 应用程序内部之前尝试从父类加载器加载类,则将其设置为 true。将其设置为 false(默认值)以使类加载器首先查看 Web 应用程序内部,然后再要求父类加载器查找请求的类或资源。

标准实现

Loader 的标准实现是 org.apache.catalina.loader.WebappLoader。除了上面列出的常见属性之外,它还支持以下其他属性

属性 描述
loaderClass

要使用的 java.lang.ClassLoader 实现类的 Java 类名。自定义实现必须扩展 org.apache.catalina.loader.WebappClassLoaderBase

如果未指定,则默认值为 org.apache.catalina.loader.ParallelWebappClassLoader。默认 loaderClass 具有并行能力,这意味着多个线程可以并行加载不同的类。可以使用非并行能力的 loaderClass,方法是指定 org.apache.catalina.loader.WebappClassLoader

嵌套组件

Loader 元素内不得嵌套任何组件。

特殊功能

日志记录

加载器与基于其类名的日志类别相关联。