Jar 扫描过滤器组件

目录

简介

Jar 扫描过滤器元素表示在将结果传递回应用程序之前从 Jar 扫描器 过滤结果的组件。它通常用于跳过扫描已知与某些或所有扫描类型无关的 JAR。

Jar 扫描过滤器元素可以嵌套在 Jar 扫描器 组件中。

例如,在扫描可插拔功能时,可以指定其他 jar 文件

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

如果未包含 Jar 扫描过滤器元素,将自动创建默认 Jar 扫描过滤器配置,这足以满足大多数要求。

属性

通用属性

Jar 扫描过滤器的所有实现都支持以下属性

属性 说明
className

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

标准实现

Jar 扫描过滤器的标准实现是 org.apache.tomcat.util.scan.StandardJarScanFilter。它支持的其他属性(除了上面列出的通用属性)在表格中列出。

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

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

请注意,从可插拔性扫描中排除 JAR 将阻止 ServletContainerInitializer 从 Web 应用程序 JAR(即位于 /WEB-INF/lib 中的 JAR)加载,但不会阻止 ServletContainerInitializer 从容器(Tomcat)加载。要阻止加载容器提供的 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 扫描过滤器元素内不能嵌套任何组件。

特殊功能

Jar 扫描过滤器元素不具有任何特殊功能。