在 Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans 实现中,如果 EJB 模块未包含在 Web 模块中,那么将针对每个 Web 模块或每个 Enterprise JavaBeans (EJB) 模块启用拦截器、修饰符和备选项。 因此,如果在 Web 模块的一个 Java 归档 (JAR) 文件中的 beans.xml 文件中启用它们,那么将针对整个 Web 模块进行启用。 在 CDI 1.2 Weld 实现中,将根据 JAR 文件启用这些项。 在一个 JAR 文件的 beans.xml 文件中启用的拦截器、修饰符和备选项只是针对此 JAR 文件启用。
该规则标记 beans.xml 文件中首次出现的 对于 Java 项目和 EJB 项目,如果该元素包含至少一个非空 <class> 子元素 且 bean-discovery-mode="none" 属性未在 <beans> 根元素上未指定 bean-discovery-mode="none" 属性:
如果想要对 Web 模块中的其他 JAR 文件启用所标记的拦截器、修饰符和备选项,请将它们添加到此 JAR 文件的 beans.xml 文件。
有关 Java EE 7 CDI 1.2 实现的更多信息,请参阅 Contexts and Dependency Injection 1.2 behavior changes。