包含空 beans.xml 文件的模块中对 bean 发现的行为更改

在低于 4.0 的 CDI 中,包含 beans.xml 部署描述符文件且该文件不含 <beans> 元素的 JAR 和 WAR 归档将视为显式 bean 归档。 在此类归档中,CDI 可以管理并插入任何 bean,但通过 @Vetoed 注释的除外。

在 CDI 4.0 中,这些归档将视为隐式 bean 归档。 在隐式 bean 归档中,CDI 只能管理和插入 使用 bean 定义的注释进行注释的 bean。

要将归档标记为显式 bean 归档并复原先前发行版的 bean 发现行为, 请在文件中提供 beans 元素,并在 beans 元素上同时指定 version 属性(设置为 1.1 或更高版本) 和 bean-discovery-mode="all" 属性:


<beans xmlns="https://jakarta.ee/xml/ns/jakartaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
    bean-discovery-mode="all"
    version="4.0">
</beans>

有关更多 Jakarta 10 迁移信息,请参阅 Jakarta Contexts and Dependency Injection 4.0 与 3.0 之间的差异