三、元数据和通用注释
除了上面描述的特定于Servlet的注释之外,Servlet 3.0还支持所有定义为JSR 175(Java元数据规范)和JSR 250(用于Java平台通用注释) 的一部分的注释,包括:
- 与安全 有关的注释,诸如@DeclareRoles 和@RolesAllowed
- 使用EJB的注释,诸如@EJB和@EJBs
- 用于资源注入的注释,诸如@resource和@Resources
- 使用JPA的注释,诸如@PersistenceContext、@PersistenceContexts、@PersistenceUnit和@PersistenceUnits
- 生命周期注释,诸如@PostConstruct 和@PreDestroy
- 提供web服务索引的注释,诸如@WebServiceRef 和@WebServiceRefs
四、注释,还是web.xml?
注释的引入使得web部署描述符(web.xml)成为配置web组件时的可选项,而非强制性的。然而,如果您必须对配置进行修改或者更新的话,您可能 仍然会使用部署描述符。容器将根据描述符web.xml中的metadata-complete元素的值来决定使用web.xml或者注释。如果该属性的 值为true,那么容器就不会处理注释和web片段;部署描述符是所有的元数据信息的唯一来源。只有当该元素metadata-complete不存在或 其值不为true时才,容器才会处理注释和web片段。