根据 ,Servlet 3.0规范要求在服务器启动期间进行Jar扫描。
Tomcat正在使用org.apache.tomcat.util.scan。为此目的使用StandardJarScanner。
来自 的javadoc 。
默认的JarScanner实现 目录,然后 提供的类加载器,然后处理类加载器层次结构。此实现足以 并提供许多Tomcat特定的扩展。扩展名是:
扫描类加载器层次结构(默认情况下启用)测试所有文件以查看它们是否为JAR(默认情况下禁用)
测试所有目录以查看它们是否是分解的JAR(默认情况下处于禁用状态)
所有扩展 。
我们可以 此jar扫描。
我通过在application-xxx.properties文件中添加以下属性来禁用它。该属性是 。
# Comma-separated list of additional patterns that match jars to ignore for TLD scanning.
server.tomcat.additional-tld-skip-patterns=*.jar
你可以找到 在这里。
这些属性可用于配置 tomcat( Spring Boot)应用程序。
您可以按以下方式禁用 文件的JarScanner 。
@Bean
public EmbeddedServletContainerFactory embeddedServletContainerFactory() {
return new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
}
};
}
<Context>
...
<JarScanner scanManifest="false"/>
...
</Context>