Java Spring autowire接口的多重实现 接口A{ 使一些无效(); } @组成部分 类B实现了一个{ @凌驾 一些(){ } } @组成部分 类C实现了一个{ @凌驾 一些(){ } } D类{ @自动连线 列出一些;//它会同时包含这两个实例吗 }
我正在从事一个项目,其中我们有多个类实现同一个接口。Java Spring autowire接口的多重实现 接口A{ 使一些无效(); } @组成部分 类B实现了一个{ @凌驾 一些(){ } } @组成部分 类C实现了一个{ @凌驾 一些(){ } } D类{ @自动连线 列出一些;//它会同时包含这两个实例吗 },java,spring,annotations,Java,Spring,Annotations,我正在从事一个项目,其中我们有多个类实现同一个接口。 如何使类D中的列表同时包含类B和类C的bean?实际上,您将得到一个解决bean冲突的异常 有多种解决方案: 使用@Primary注释使其中一个bean成为可选的 @组件 @初级的 类B实现了一个{ @凌驾 一些(){ } } @组成部分 类C实现了一个{ @凌驾 一些(){ } } D类{ @自动连线 列出一些;//B将被注入,因为它是主 } 或者使用@限定符或@资源注释。 情景 @组件(“beanB”) 类B实现了一个{ @凌驾 一些(
如何使类D中的列表同时包含类B和类C的bean?实际上,您将得到一个解决bean冲突的异常 有多种解决方案:
@组件
@初级的
类B实现了一个{
@凌驾
一些(){
}
}
@组成部分
类C实现了一个{
@凌驾
一些(){
}
}
D类{
@自动连线
列出一些;//B将被注入,因为它是主
}
@组件(“beanB”)
类B实现了一个{
@凌驾
一些(){
}
}
@组件(“beanC”)
类C实现了一个{
@凌驾
一些(){
}
}
D类{
@自动连线
@限定词(“beanB”)
列出一些;//B将被注入,因为@Qualifier
}
interface A{
void some();
}
@Component
class B implements A{
@override
some(){
}
}
@Component
class C implements A{
@override
some(){
}
}
Class D {
@Autowired
List<A> somes;//will it have the instances of both
}