在 CDI 4.0 之前的 CDI 中,如果 JAR 和 WAR 保存檔包含不具有 <beans> 元素的 beans.xml
部署描述子檔案,則視為明確 Bean 保存檔。
在這些保存檔中,CDI 可以管理和注入任何 Bean,不含那些標註有 @Vetoed 的 Bean。
在 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 之間的差異。