2013-02-12 26 views
0

由于依赖注入意味着控制反转,我看不到国际奥委会在下面的调用:在Spring中使用依赖注入调用ApplicationContext.getBean()吗?

Car car = (Car)ApplicationContext.getBean("car"); 

这不是春天摸出自己的班,因为我写了自己车到代码。

而且,所有的书讲两种DI的:setter和构造DI。

所以我在想,如果调用ApplicationContext.getBean()暗示任何种类的依赖注入和IOC或没有DI可言。

回答

1

号获取你的bean这种方式是不依赖注入。它没有被注射。该bean的字段可能被注入。

有时候真的没有办法解决它,但在一般情况下,尽量避免这种情况。

0

因为我自己写了Car到代码中,所以这不是Spring自己制定的课程。

在这种情况下,您将得到NoSuchBeanDefinitionException。你需要告诉Spring它需要管理的每个类 - 有多种方法可以做到这一点,从自动装配到描述符中的显式定义。

0

getBean的确使用与Spring的注入相同的配置(applicationContext),但您的示例并未使用任何依赖注入。 (嗯,Car bean可以注入它的依赖关系,所以我们不知道你的例子)。

但通常依赖注入意味着你不需要自己做任何编程设定(车车=东西)。 Spring容器将为您创建car实例,并使用car的setter或它的构造函数将注入x需要工作的依赖关系。

0

我不知道为什么都试图让以这种方式轿厢基准...如果你想使用另一个类车的参考,你可以简单地使用setter方法或构造函数注入你said..If你按照上面的方式使用它,我看不到任何类型的DI。我们可以肯定地说的一件事是,当你试图从应用程序上下文获取引用时,bean由IOC容器管理。 ..