pan*_*nnu 4 java spring annotations
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
}
Run Code Online (Sandbox Code Playgroud)
我正在开发一个项目,我们有多个类实现相同的接口.如何让D类中的列表包含B类和C类的bean?
实际上你会得到一个解决bean冲突异常,
有各种解决方案:
@Component
@Primary
class B implements A{
@override
some(){
}
}
@Component
class C implements A{
@override
some(){
}
}
Class D {
@Autowired
List<A> somes;//B will be injected because it primary
}
Run Code Online (Sandbox Code Playgroud)
@Component("beanB")
class B implements A{
@override
some(){
}
}
@Component("beanC")
class C implements A{
@override
some(){
}
}
Class D {
@Autowired
@Qualifier("beanB")
List<A> somes;//B will be injected because of @Qualifier
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3128 次 |
| 最近记录: |