0

CDI初心者です。

XML (Spring) で Bean を構成する際に使用されます。CDI では、それらをクラスで直接構成する必要がありますか? 同じ実装で構成が異なる数十の Bean があります。

4

2 に答える 2

4

CDI は、アノテーションと xml 構成を組み合わせて使用​​して、デプロイでアクティブな Bean を構成します。これは大きなトピックですが、要約してみます。

Bean の実装では、次の標準アノテーションを使用できます。

@Default
@Alterative
@Vetoed
@Specializes

他の注釈が存在しない場合を除き、@Default が想定されます

META-INF/beans.xml で指定されていない限り、@Alternative Bean はアクティブになりません。

@Vetoed Bean はアクティブとは見なされません

@Specializes Bean は常にそのスーパークラスよりも優先されます。

これらに加えて、独自の修飾子を作成して、目的のために必要な Bean をより正確に選択できます。

次のような注釈として修飾子を作成します。

@Qualifier
@Retention(RUNTIME)
@Target({ TYPE, FIELD, PARAMETER, METHOD })
public @interface MyQualifier {
}

@Qualifier および @Retention(RUNTIME) アノテーションに注意してください。パラメータを顧客修飾子に追加することもできます。

Weld のドキュメントを読むことをお勧めします。包括的でよく書かれています。

溶接マニュアル

于 2015-10-22T14:38:10.577 に答える
2

はい、構成はコード内で行われます。XML ベースの設定を行う試みがいくつかあります。Seam Config を探してください。

数十の Bean の場合、通常はプロデューサー メソッドを使用して、独自の構成で個々の実装を作成します。CDI は、Bean ID ではなく修飾子を使用して Bean を識別します。

于 2013-10-29T11:07:19.277 に答える