Qualifierアノテーションを使用できないユースケースがありますが(少なくとも私の理解によれば)、Autowireの2つのBean間で解決する必要があります。クラスFoo内で使用されるFooBarの実装がわからないため、修飾子を使用できません。これが私が持っているセットアップです:
class Foo
{
@Autowired
private FooBar a;
public Foo(FooBar aa) {a = aa; }
}
interface FooBar
{}
class FooBarA implements FooBar
{}
class FooBarB implements FooBar
{}
春の設定:
<bean id="beanA" class="FooBarA"/>
<bean id="beanB" class="FooBarB"/>
<bean id="bean1" class="Foo">
<constructor-arg><ref bean="beanA"/></constructor-arg>
</bean>
<bean id="bean2" class="Foo">
<constructor-arg><ref bean="beanB"/></constructor-arg>
</bean>
bean1とbean2のそれぞれの場合に使用するFooBarの派生を明示的に指定したにもかかわらず、2つのBean(beanAとbeanB)があるため、クラス「Foo」の変数「a」のBeanを解決できないというエラーがスローされます。 。