0

私は経験がなく、現在、それらの基本的な原則とその使用方法を理解しようとしています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実装で試して例外を受け取った場合、それ (複数の実装) は別の方法でのみ達成可能であると推測します。私は正しいですか?

4

1 に答える 1