1つのSpring bean/インターフェースの複数の実装を処理する質問する

1つのSpring bean/インターフェースの複数の実装を処理する質問する

頼りにする必要があると言ういくつかの実装Spring Bean の 1 つのAccountServiceインターフェースと 2 つの実装があります:DefaultAccountServiceImplおよびSpecializedAccountServiceImpl

  1. Spring でこれ (いずれかの実装を注入する) はどのように可能になるのでしょうか?

  2. 次のインジェクションではどの実装が使用されますか?

    @Autowired
    private AccountService accountService;
    

ベストアンサー1

広告1: 使用できます@Qualifier注釈または、タイプではなくフィールド名をデフォルトとする@Resourceではなく、 を使用して autowire を使用します。@Autowired

2: 実行時に、2つのBeanがこのインターフェースを実装しているとエラーが発生します。Beanの1つがさらに注釈付き@Primaryタイプ別に自動配線する場合に優先されます。

おすすめ記事