空の beans.xml ファイルを持つモジュールでの Bean ディスカバリーの振る舞いの変更

CDI 4.0 より前の CDI では、<beans> エレメントが指定されていない beans.xml デプロイメント記述子ファイルを含む JAR および WAR アーカイブ は、明示的 Bean アーカイブと見なされます。 これらのアーカイブでは、@Vetoed の注釈が付けられた Bean を除き、CDI は任意の 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 の相違点を参照してください。