JarScanFilter 组件

目录

简介

Jar Scan Filter 元素代表一个组件,它在将 Jar Scanner 的结果返回给应用程序之前对其进行过滤。它通常用于跳过扫描已知与某些或所有扫描类型不相关的 JAR 文件。

Jar Scan Filter 元素可以嵌套在 Jar Scanner 组件中。

例如,在扫描可插拔功能时,您可以指定额外的 JAR 文件

<Context>
  ...
  <JarScanner>
    <JarScanFilter
        pluggabilityScan="${tomcat.util.scan.StandardJarScanFilter.jarsToScan},
                       my_pluggable_feature.jar"/>
  </JarScanner>
  ...
</Context>

如果未包含 Jar Scan Filter 元素,将自动创建一个默认的 Jar Scan Filter 配置,这足以满足大多数要求。

属性

通用属性

Jar Scan Filter 的所有实现都支持以下属性

属性描述
className

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

标准实现

Jar Scan Filter 的标准实现是 org.apache.tomcat.util.scan.StandardJarScanFilter。它支持的额外属性(除了上面列出的通用属性)如下表所示。

pluggabilitySkippluggabilityScantldSkiptldScan 属性的值是文件名模式列表。模式之间用逗号 (',') 分隔。模式中前导和尾随的空白字符将被忽略。模式匹配区分大小写。支持以下两个特殊字符:

  • '*' - 表示零个或多个字符,
  • '?' - 表示一个且只有一个字符。

请注意,将 JAR 从可插拔性扫描中排除将阻止从 Web 应用程序 JAR(即位于 /WEB-INF/lib 中的 JAR)加载 ServletContainerInitializer,但不会阻止从容器(Tomcat)加载 ServletContainerInitializer。要阻止加载由容器提供的 ServletContainerInitializer,请使用 ContextcontainerSciFilter 属性。

属性描述
pluggabilitySkip

在扫描 Servlet 3.0 规范引入的可插拔功能时,要跳过的 JAR 文件名模式的逗号分隔列表。如果未指定,默认值将从 tomcat.util.scan.StandardJarScanFilter.jarsToSkip 系统属性中获取。

pluggabilityScan

在扫描 Servlet 3.0 规范引入的可插拔功能时,要扫描的 JAR 文件名模式的逗号分隔列表。如果未指定,默认值将从 tomcat.util.scan.StandardJarScanFilter.jarsToScan 系统属性中获取。

defaultPluggabilityScan

控制在扫描可插拔功能时,JAR 是否默认被扫描或跳过。如果为 true,则当 JAR 的名称不匹配任何 pluggabilitySkip 模式或匹配任何 pluggabilityScan 模式时,该 JAR 将被扫描。如果为 false,则当 JAR 的名称匹配任何 pluggabilityScan 模式且不匹配任何 pluggabilitySkip 模式时,该 JAR 将被扫描。如果未指定,默认值为 true

tldSkip

在扫描标签库 (TLD) 时,要跳过的 JAR 文件名模式的逗号分隔列表。如果未指定,默认值将从 tomcat.util.scan.StandardJarScanFilter.jarsToSkip 系统属性中获取。

tldScan

在扫描标签库 (TLD) 时,要扫描的 JAR 文件名模式的逗号分隔列表。如果未指定,默认值将从 tomcat.util.scan.StandardJarScanFilter.jarsToScan 系统属性中获取。

defaultTldScan

控制在扫描 TLD 时,JAR 是否默认被扫描或跳过。如果为 true,则当 JAR 的名称不匹配任何 tldSkip 模式或匹配任何 tldScan 模式时,该 JAR 将被扫描。如果为 false,则当 JAR 的名称匹配任何 tldScan 模式且不匹配任何 tldSkip 模式时,该 JAR 将被扫描。如果未指定,默认值为 true

嵌套组件

任何组件都不能嵌套在 Jar Scan Filter 元素内。

特殊功能

没有与 Jar Scan Filter 元素关联的特殊功能。