在弹簧依赖注入的here
示例中在此行之后运行最终测试类:
MySpringBeanWithDependency test = (MySpringBeanWithDependency) factory
.getBean("mySpringBeanWithDependency");
将编写哪个编写器类的实现?测试类仍然负责创建实际的实现并在Writer上调用业务方法之前注入它。这是真的吗?
答案 0 :(得分:0)
在基于注释的示例和基于XML的示例中,Spring将NiceWriter
bean注入MySpringBeanWithDependency
bean。
对于注释示例,这是因为NiceWriter
类使用@Service
注释(而Writer
类不是),Spring将通过类路径扫描发现并将其自动装入MySpringBeanWithDependency
。
对于XML示例,这是因为NiceWriter
类用于定义标识为writer
的bean,该bean被引用为标识为{{1}的bean的“writer”属性}。
在这两种情况下,mySpringBeanWithDependency
bean都是通过Spring注入的依赖项实例化的,因此可以使用。 不负责管理其MySpringBeanWithDependency
依赖项。这就是为什么依赖注入(简称DI)通常与反转控制(简称IoC)相辅相成。 Spring提供了一个使用DI的IoC容器。