【发布时间】:2018-04-22 09:32:34
【问题描述】:
我正在构建一个项目,使用 SpringFramework 从 MongoDB 读取数据,Repository 和 Service 的结构如下:
Repository:
+ Interfaces:
- I <T extends Object>
- I1 extends I<M1>
- I2 extends I<M2>
+ Implements:
- RI Abstract RI<T extends Object>
- RI1 extends RI<M1> implements I1
- RI2 extends RI<M2> implements I2
Service:
+ Interfaces:
- SI <T extends Object>
- SI1 extends SI<M1>
- SI2 extends SI<M1>
+ Implements:
- Abstract SIIMPL : @Autowired I<?>
- SI1IMPL : extends SIIMPL<M1> implements SI1
- SI2IMPL : extends SIIMPL<M2> implements SI2
当我运行时,它会抛出异常:
没有可用的“I”类型的合格 bean:预期单一匹配 bean 但找到 2: I1,I2
当我删除 RI2 时,它可以正常工作。在我看来,我认为根本原因是 @Autowired 从 Abstract(SIIMPL) 到另一个 abstract(I) 2 个工具是 RI1 和 RI2,所以 spring 不知道该选什么 bean。
如果有人有任何想法,请给我留言。谢谢!
【问题讨论】:
标签: java spring mongodb spring-mvc