Development desciptor
概述与作用:
部署描述符是用于描述Web应用程序的元数据,并为Java EE Web应用程序服务器部署和运行Web应用程序提供指令。从传统上来说,所有元数据都来自于部署描述符文件/WEB-INF/web.xml。该文件通常包含Servlet、监听器和过滤器的定义,以及HTTP会话、JSP和应用程序的配置选项。Java EE 6中的Servlet 3.0添加了使用注解和Java Configuration API配置Web应用程序的能力。它还增加了Web片段的概念-- 应用程序中的JAR文件可以包含Servlet、过滤器和监听器的配置,这些配置将被添加到必要JAR文件的部署描述符文件/META-INF/web-fragment.xml中。Web片段也可以使用注解和Java Configuration API。
Java EE 6对Web应用程序部署的这个改变为文件部署增加了巨大的复杂性。为了简化操作,可以配置Web片段的顺序,从而按照特定的顺序扫描和激活它们。可以通过下面两种方式实现:
每个Web片段的web-fragment.xml文件中可以包含一个<ordering>元素,该元素可以使用嵌套的<before>和<after>标签来控制该Web片段在哪个Web片段之前或之后激活。这些标签包含嵌套的<name>元素用于指定与当前片段有顺序关系的Web片段。<before>和<after>也可以包含嵌套的<others>元素,表示该片段应该在任何未指定的片段之前或之后激活。
如果未创建特定的Web片段,并且不能控制它的内容,那么仍然可以在应用程序的部署描述符中控制Web片段的顺序。通过使用/WEB-INF/web.xml中的<absolute-ordering>元素与它的嵌套的<name>和<others>元素,可以配置绑定的Web片段的绝对顺序,该配置将覆盖来自于Web片段的任何顺序指令。
默认情况下,Servlet 3.0及更高版本的环境将扫描Web应用程序和Web片段中的Java EE Web应用程序注解,用于配置Servlet、监听器、过滤器等。如果需要,可以在根<web-app>或<web-fragment>元素中添加特性metadata-complete="true",禁止扫描和注解配置。还可以在部署描述符中添加元素<absolute-ordering/>(不包含任何嵌套元素),禁止应用程序中的所有Web片段。