为什么 Spring 在自动装配时会自动选择超类类型?
例如,如果我有
@Component
public class Foo {}
@Component
public class Bar extends Foo {}
有人自动接线
@Autowired
private Foo foo;
为什么 Spring 总是选择超类型Foo
?这不应该是一个“模棱两可”的映射(并导致 Spring 抛出错误)吗?
从技术上讲,你不是有两个 Foo
候选人吗?(例如,当 @Component 从 Foo 中删除时,会自动选择Bar ...)