2015-12-24 77 views
1

我是新来的春天谁能告诉我自动装配与依赖注入在春季有什么区别?Spring中自动装配与依赖注入有什么区别?

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

+1

这是一回事。术语“自动装配”来自于使用'@ Autowired'注释,它是DI容器注入依赖关系的标记注释。 –

回答

2

没有区别。当这个概念是新的时候,有几个名字被使用,并且“依赖注入”最终成为最常见的。 Spring的配置系统使用了“autowire”,而且这种配置系统停留在那里,GoF术语“控制反转”有时会用到,通常在更为学术的环境中使用。他们都是同义词。

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 

自动装配是框架来自动决定哪些对象需要的时候,你的能力调用该对象。通常使用反射,检查代码中的某些文档文件或注释,参数...。所以当你从容器中获取它时,所有的依赖关系都已经设置好了。你可以控制哪些依赖关系应该被注入,但是你可以在配置文件,注释,类型提示中指定它们......

所以,自动装配是实现依赖注入的一种更自动的方式。

相关问题