19

我正在尝试 Tomcat 7.0 和 Servlet API 3.0。

我有一个 Servlet API 2.5 的应用程序。所以我编辑了 web.xml 来为 Servlet API 3.0 配置它。更改后 Tomcat 的启动时间增加了 14 秒。

于是我设置<web-app metadata-complete="true" ...了tomcat的启动时间并恢复正常,因为tomcat不会扫描每个类的注解。这很好,但是 web-fragment.xml 功能也因此被禁用。

我想知道是否可以禁用 Tomcat 的注释扫描,但启用 web-fragment.xml 的处理。

4

2 回答 2

5

考虑在 web.xml 中使用“绝对排序”元素。Servlet API 3.0 Final Spec 在第 8.2.2 节“web.xml 和 web-fragment.xml 的排序”中描述了它的用法。

您可以指定要处理的确切web-fragments,禁用 web-fragment jar 中类的注释处理(列表中 web-fragment 中的“元数据完整”),当然还可以将其他 jars 排除在此类 web 处理之外-片段包含。

于 2013-09-20T15:18:44.553 回答
4

片段和注释都是应用程序的元数据。因此,元数据完整适用于注释处理和片段处理。 如果为 web.xml 设置了 metadata-complete,则注释处理和片段处理都被禁用

但是,也可以将 metadata-complete 设置为 web-fragments.xml。因此,可以对注释和片段进行选择性处理。

在 web.xml 上启用 metadata-complete 并在 web-fragments.xml 上禁用将处理片段,但禁用 web-fragments.xml 下的类的注释处理

于 2011-05-31T10:14:23.433 回答