包含 beans.xml 文件且未指定文件版本的模块中对 bean 发现的行为更改

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

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

要将归档标记为显式 bean 归档并复原先前发行版的 bean 发现行为, 请在 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>

此规则具有自动修订,用于添加缺少的 versionbean-discover = "all " 属性。 将定制配置复制到应用程序构建文件以启用修订自动化。

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