0

在这个关于spring依赖注入的例子

在运行最终测试类时,在此行之后:

MySpringBeanWithDependency test = (MySpringBeanWithDependency) factory
        .getBean("mySpringBeanWithDependency");

writer 类的哪个实现会被注入?测试类仍然负责创建实际实现并在调用 Writer 上的业务方法之前将其注入。这是真的吗?

4

1 回答 1

0

在基于注解的示例和基于 XML 的示例中,Spring 都会将NiceWriterbean 注入到MySpringBeanWithDependencybean 中。

对于注释示例,这是因为NiceWriter该类被注释了@Service(而Writer该类没有注释),S​​pring 将通过类路径扫描发现这一点并将其自动装配到MySpringBeanWithDependency.

对于 XML 示例,这是因为NiceWriter该类用于定义 id 的 bean writer,它被引用为 id 的 bean 的“writer”属性mySpringBeanWithDependency

在这两种情况下,MySpringBeanWithDependencybean 都使用通过 Spring 注入的依赖项进行实例化,因此可以使用。它负责管理其IWriter依赖关系。这就是为什么依赖注入(简称 DI)通常与控制反转(简称 IoC)齐头并进的原因。Spring 提供了一个使用 DI 的 IoC 容器。

于 2013-08-30T15:00:30.523 回答