繁体   English   中英

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

[英]What is difference between autowiring vs dependency injection in Spring?

我是 Spring 的新手,谁能告诉我 Spring 中的自动装配与依赖注入有什么区别?

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

没有区别。 当这个概念是新的时,使用了多个名称,“依赖注入”最终成为最常见的名称。 Spring的配置系统使用了“ autowire”,并且固定在那里,有时在更学术的环境中使用GoF术语“控制反转”。 它们都是同义词。

依赖注入控制反转是同义词。 您将对对象依赖项的控制从该对象反转到了调用该对象的对象,因此您要注入该/这些依赖项。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM