在统一建模语言 (UML) 中,依赖(Dependency)是一种关系,表明一个元素或一组元素需要其他模型元素来进行规范或实现。
DI是Dependency Injection的缩写,即依赖注入,是一项使一个对象接收到它所依赖的其他对象的技术。DI 的实现通常需要使用注解或 XML 配置文件来声明依赖关系:
Spring中的DI
Spring框架提供了一种基于注解的、声明式的依赖注入方式,称为 Spring DI。
DI是Spring框架实现控制反转(IoC)的一种方式,被反转的是一个对象获取其依赖对象的流程。
- 传统流程:一个对象主动创建自己依赖项的对象
- 反转后的流程:一个对象声明自己需要某个依赖项对象,由框架将依赖项对象注入到该对象中
在 Spring 框架中,依赖注入通常通过注解或 XML 配置文件实现。
1、注解方式
Spring框架支持使用@Autowired、@Resources等注解来实现依赖注入。
- @Autowired注解可以注入一个具体的类、接口、或者抽象类,一般用于注入当前对象依赖的其他对象
- @Resources注解与@Autowired注解功能相似,但是执行机制上略有不同,推荐使用@Autowired注解
2、XML配置文件方式(了解)
Spring 框架也支持使用 XML 配置文件来实现依赖注入。通过 XML 配置文件,可以更清晰地定义依赖关系,同时也支持更多的配置选项。例如,可以使用以下 XML 配置文件来实现依赖注入:
- <bean id="B" class="com.example.demo.B">
- </bean>
- <bean class="com.example.demo.A">
- <property name="b" ref="B" />
- </bean>