Ich habe zwei Bohnen mit dem Typ InterfaceA
. Ich habe versucht, die Bohne in ein Argument einer @Bean
Methode unter Verwendung @Qualifier
zum Autowire namentlich zu injizieren. Ich war überrascht, dass Spring die richtige Bean nicht auflösen kann, es sei denn, Ihr Parametername stimmt mit dem Bean-Namen überein.Spring Autowiring Parameter nach Name
Ich habe versucht:
@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) {...}
}
aber bekam die NoUniqueBeanDefinitionException
. Wenn ich jedoch Parametername den Komponentennamen entspricht, funktioniert es gut.
@Configuration
public class AppConfig {
@Bean
@Autowired
public SomeOtherClass someOtherClass(InterfaceA classA) {...}
}
Könnte jemand erklären, warum ich nicht autowiring namentlich mit @Resource
oder @Qualifier
hier nicht verwenden kann?
Bitte fügen Sie den vollständigen Stacktrace – Jens