回答
依赖的配置从XML,注释或Java DSL(JavaConfig)读取。然后,Spring DI引擎使用Java反射API根据配置中的元数据连接依赖项。
我想知道,它是如何连接的依赖。 – 2010-09-16 10:11:42
使用Java反射API。我将这些信息添加到答案中。 – 2010-09-16 10:53:50
使用Java反射API,Spring会理解它必须在该特定点处插入一个依赖项,但是如何精确插入这个依赖项?这是一些字节码级别的变化? – flash 2013-05-06 05:39:11
Java组件/类应尽可能独立于其他Java类。这增加了重用这些类并独立于其他类进行测试的可能性(单元测试)。为了将Java组件与其他Java组件分离,对某个其他类的依赖关系应该被注入到它们中,而不是该类本身创建/查找该对象。
如果类A使用类B作为变量,则类A对类B具有依赖性。
如果使用依赖注入,则类B通过类A的构造函数被赋予类A - 这被称为构造注入;或通过setter - 这被称为setter注入
依赖注入的一般概念被称为控制反转。一个班不应该配置自己,但应该从外部进行配置。
基于独立类/组件的设计提高了重用性和测试软件的可能性。例如,如果A类希望Dao(数据访问对象)用于接收来自数据库的数据,则可以轻松创建另一个测试对象,该对象嘲笑数据库连接,并将此对象注入到A中以测试A而无需实际的数据库连接。
基于标准Java的依赖注入的软件设计是可能的。
Spring通过提供一种提供配置的标准方式和管理对创建对象的引用来增加使用依赖注入的一些简化。
更多阅读this
EDIT1:
春初始化它的上下文它创建定义在Spring应用程序context.xml文件渴望所有的豆类。 现在假设你的Bean A具有B的依赖关系,那么B的Obj已经与Spring一起,因为它在Spring初始化时已经成功创建。然后Spring会在A类中搜索setter方法,并在那里设置B的Obj。
EDIT2:
为什么-1 ??? ???? – 2010-09-16 10:13:07
我在问:“你是怎么注入构造函数的” – 2010-09-16 10:19:52
@Suresh S编辑 – 2010-09-16 10:25:22
- 1. 依赖注入Spring框架 - 工作
- 2. Spring依赖注入
- 3. 依赖注入是如何工作的?
- 4. 依赖注入不工作
- 5. Spring 3依赖注入
- 6. Spring Boot + DynamoDBTypeConverter依赖注入
- 7. Spring传递依赖注入
- 8. Spring依赖注入失败
- 9. 在Glassfish中禁用Spring依赖注入
- 10. 如何在symfony /依赖注入中使自动布线工作?
- 11. 依赖注入在黄瓜中如何工作?
- 12. spring 3注解依赖注入
- 13. Spring MVC中的依赖注入
- 14. GWT或Spring中的依赖注入
- 15. Spring MVC中的依赖注入?
- 16. 无法获得Spring依赖注入工作
- 17. 使用嵌套的bean时,依赖注入与Spring不工作
- 18. 在Spring中使用依赖注入来替换工厂模式
- 19. 依赖注入工作单元
- 20. 依赖注入与工厂
- 21. 依赖注入和工厂
- 22. C#依赖注入 - 如何注入无源的依赖关系?
- 23. 如何注入d3依赖?
- 24. Spring JAX-RS/CXF依赖注入在JAR中工作,但不是WAR
- 25. Spring Java对象依赖注入
- 26. 原因使用Spring依赖注入
- 27. Spring依赖注入@Autowired without setter
- 28. Spring依赖注入对象池
- 29. 使用Grails Spring DSL的依赖注入
- 30. Spring - 向ServletContextListener注入依赖项
您可以阅读代码,因为它是开源的。 – 2010-09-16 09:58:34
@Preet无论如何,我正在阅读它。我只想要一个概述。 – 2010-09-16 09:59:31
“我在别处得到答案,答案是字节码检测。” - 不,这不对。 95%的Spring使用Reflection API。字节代码检测仅用于特定类型的注入,如方法查找注入。 – 2010-09-17 10:31:04