私は経験がなく、現在、それらの基本的な原則とその使用方法を理解しようとしていますEJB
. CDI
特に の目的と使い方を把握したいので、ガイドQualifiers
を読みました。aがインターフェイスの拡張として機能する方法を完全には理解できません。ガイドの例と次のステートメントを出発点として取り上げます。、私はできると思います:Qualifier
@Asynchronous
public class AsynchronousPaymentProcessor implements PaymentProcessor {
public void process(Payment payment) { ... }
}
と
@Asynchronous
public class OtherAsynchronousPaymentProcessor implements PaymentProcessor {
public void process(Payment payment) { ... }
}
そして、彼らは次のように注入しようとします:
@Inject @Asynchronous PaymentProcessor asyncPaymentProcessor;
この場合、どちらの Bean にも同じアノテーションが付けられているため、どの Bean が注入されるかはどのように決定されるのQualifier
でしょうか? それとも、修飾子の複数の実装は関係ありAlternatives
ますか?
更新完了:
関連する質問も読みました。私が欲しいのは、かなり長い説明のない答えです:インターフェースを実装する型クラスを注入できるので、疎結合を達成する以外に、インターフェース型を注入する利点は何ですか? 上記のコードを 2 つの@Asynchronous
実装で試して例外を受け取った場合、それ (複数の実装) は別の方法でのみ達成可能であると推測します。私は正しいですか?