Spring中自动装配与依赖注入有什么区别?

时间:2015-12-24 00:45:03

标签: spring

我是Spring新手可以有人告诉我在Spring中自动装配与依赖注入有什么区别?

我试图在互联网上搜索,但我找不到有用的东西。

2 个答案:

答案 0 :(得分:2)

没有区别。当概念是新的时,使用了几个名称,并且"依赖注入"最终成为最常见的。使用Spring的配置系统" autowire",并且那些卡在那里,以及GoF术语"控制反转"有时使用,通常在更学术的环境中。他们是所有同义词。

答案 1 :(得分:0)

依赖注入控制反转是同义词。您将对象依赖关系的控制从对象转换为调用该对象的对象依赖关系,因此您将注入该/这些依赖关系。

因此,您是指定哪个对象将要接收您要调用的对象的人:

ObjectA dependency = new ObjectA(); //You have the control about which kind of object is going to be injected
ObjectB invoked = new ObjectB(dependency); //You inject that object

自动装配是框架在您调用该对象时自动决定需要哪个对象的能力。通常使用反射,在代码中检查一些文档文件或注释,参数.......因此,当您从容器中获取它时,所有依赖项都已设置。您可以控制应该注入哪些依赖项,但是如上所述,您可以在配置文件,注释,类型提示中指定它们。

因此,自动装配是实现依赖注入的一种更自动化的方式。