2016-08-31 9 views
2

タイプInterfaceAの2つの豆があります。 私は@Qualifierを使ってautowireという名前で@Beanメソッドの引数にBeanを注入しようとしていました。 私は、あなたのパラメータ名がBean名と一致しない限り、Springが適切なBeanを解決できないことに驚いていました。名前による春のオートワイヤリングパラメータ

@Component 
public class ClassA implements InterfaceA { 
} 

@Component 
public class ClassB implements InterfaceA { 
} 

@Configuration 
public class AppConfig { 
    @Bean 
    @Autowired 
    @Qualifier("classA") 
    public SomeOtherClass someOtherClass(InterfaceA object) {...} 
} 

をしかしNoUniqueBeanDefinitionExceptionを得た:

私がしようとしていました。 しかし、コンポーネント名と一致するパラメータ名を使用するとうまく動作します。私はここに@Resourceまたは@Qualifierと名前でオートワイヤリングを使用できない理由

@Configuration 
public class AppConfig { 
    @Bean 
    @Autowired 
    public SomeOtherClass someOtherClass(InterfaceA classA) {...} 
} 

誰かが説明してもらえますか?

+0

完全なスタックトレースを追加してください。 – Jens

答えて

6

はないメソッドのパラメータに@Qualifier注釈を追加します。

public SomeOtherClass someOtherClass(@Qualifier("classA") InterfaceA object) {...} 
関連する問題