Tomcat 在整个类路径中查找启动期间*.tld
文件。对于生产应用程序,类路径可能很大,这最终会在启动期间消耗 10 秒。我已经知道tomcat记录了它尝试搜索但找不到TLD的路径,但是,我在TLD文档(https://docs.oracle.com/javaee/5/tutorial/doc/bnamu.html)中遇到了这个问题:
如果要重新分发标记文件或使用用 Java 编写的标记处理程序实现自定义标记,则必须在标记库描述符 (TLD) 中声明标记。标记库描述符是一个 XML 文档,其中包含有关整个库以及库中包含的每个标记的信息。Web 容器使用 TLD 来验证标记,JSP 页面开发工具使用 TLD。
争用中的服务是一个纯粹的后端服务,没有提供JSP页面,也没有使用标记文件,所有的spring配置都是基于Java的。那么只需在EmbeddedServletContainerFactory
中添加此选项就可以了:
tomcat.addTldSkipPatterns("*.jar")
(或application.properties
中的类似配置)
如果您的应用程序中没有任何 JSP,则设置TLSjavasToSkip=*.jar
是安全的。
请注意,类路径扫描的发生也有许多其他原因,所以我倾向于同意 @M.Deinum 的评论,即仅通过禁用 TLD 扫描,您可能不会看到太大的改进。