JAR 扫描器组件

目录

介绍

Jar Scanner 元素表示用于扫描 Web 应用程序以查找 JAR 文件和类文件目录的组件。它通常在 Web 应用程序启动期间使用,以识别必须作为 Web 应用程序初始化一部分进行处理的配置文件,例如 TLD 或 web-fragment.xml 文件。

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

例如,您可以在扫描 JAR 文件时包含引导类路径

<Context>
  ...
  <JarScanner scanBootstrapClassPath="true"/>
  ...
</Context>

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

属性

通用属性

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

属性描述
className

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

标准实现

Jar Scanner 的标准实现是 org.apache.tomcat.util.scan.StandardJarScanner。除了上面列出的通用属性外,它还支持以下附加属性

属性描述
scanAllDirectories

如果为 true,则会检查类路径上找到的任何目录,以确定它们是否是已展开的 JAR 文件。默认值为 false

Tomcat 通过查找 META-INF 子目录来判断一个目录是否是已展开的 JAR 文件。只有当 META-INF 子目录存在时,该目录才被假定为已展开的 JAR 文件。请注意,对于扫描匹配 @HandlesTypes 注解的情况,无论是否存在 META-INF 子目录,所有目录都将被扫描。

scanAllFiles

如果为 true,则会检查类路径上找到的任何文件,以确定它们是否是 JAR 文件,而不是依赖文件扩展名为 .jar。默认值为 false

scanClassPath

如果为 true,除了 Web 应用程序本身,还将扫描完整的 Web 应用程序类路径,包括共享和通用类加载器以及系统类路径(但不包括引导类路径)以查找 JAR 文件。默认值为 true

scanBootstrapClassPath

如果 scanClassPathtrue 且此项为 true,则引导类路径也将被扫描以查找 JAR 文件。默认值为 false

scanManifest

如果为 true,则会扫描找到的任何 JAR 文件的 Manifest 文件,以查找额外的类路径条目,并将这些条目添加到要扫描的 URL 中。默认值为 true

嵌套组件

只有 Jar Scan Filter 可以嵌套在 Jar Scanner 元素内部。

特殊功能

Jar Scanner 元素没有特殊功能。