1. ホーム
  2. spring

[解決済み] 複数のBeanが見つかった場合、Springはどのように名前による自動配線を行うのですか?

2022-09-25 05:40:40

質問

以下のようなインタフェースがあるとします。

interface Country {}
class USA implements Country {}
class UK implements Country ()

そして、この設定xmlのスニペット。

<bean class="USA"/>
<bean id="country" class="UK"/>
<bean id="main" class="Main"/>

どの依存関係が下に自動配線されるかを制御するにはどうすればよいですか? 私は英国のものが欲しいです。

class Main {
    private Country country;
    @Autowired
    public void setCountry(Country country) {
        this.country = country;
    }
}

Spring 3.0.3.RELEASEを使用しています。

どのように解決するのですか?

これは セクション 3.9.3 で説明されています。

フォールバックマッチの場合、ビーン名はデフォルトの修飾値としてみなされます。

言い換えれば、デフォルトの動作は、あたかもあなたが @Qualifier("country") をセッターメソッドに追加したようなものです。