Loader 组件

目录

简介

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

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

一个 Loader 元素可以嵌套在 Context 组件内部。如果未包含此元素,将自动创建一个默认的 Loader 配置,这对于大多数要求来说已足够。

有关 Catalina 实现的类加载器层次结构的更深入描述,请参阅类加载器指南

下面的描述中使用变量名 $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 具有并行能力,这意味着多个线程可以并行加载不同的类。通过指定 org.apache.catalina.loader.WebappClassLoader,可以使用不具备并行能力的 loaderClass

嵌套组件

任何组件都不能嵌套在 Loader 元素内部。

特殊功能

日志

加载器根据其类名与日志类别相关联。