从标题来看,这似乎很简单,我们在我们的应用程序中使用@qualify和@autowired在我们的代码中注入bean。
我有两个带有@component注释的类,它们都实现了相同的类。
@Component
class A extends B{
}
@Component
class C extends B{
}
当应用程序在启动应用程序时作为两个相同类型的bean启动时,应用程序将失败并显示以下错误
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'JI' available: expected single matching bean but found 2: a,b
问题是因为弹簧注入不注入这些bean我想告诉spring通过bean名称注入这些bean而不是类型运行时。
当第一个请求出现时,应用程序启动很好,但是给出了错误。
我在下面尝试了这个 -
@Component
@Qualifier("a")
class A extends B{
}
@Component
@Qualifier("c")
class C extends B{
}
但仍然会得到同样的错误。
有关如何使此工作正常的任何建议。
答案 0 :(得分:0)
注入时必须使用bean的名称。
@Autowired
@Qualifier("c") // or "a"
private TargetClass targetClass;