我们是否可以安全地将'tomcat.addTldSkipPatterns("*.jar")'用于使用嵌入式tomcat的纯后端弹簧引导服务



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 扫描,您可能不会看到太大的改进。

最新更新