Spring(06)IOC 依赖注

Spring(06)IOC 依赖注

Spring 核心编程思想目录:https://www.cnblogs.com/binarylei/p/12290153.html

1. 依赖注入的模式和类型

1.1 依赖注入模式

  • 手动模式- 配置或者编程的方式,提前安排注入规则
    • XML 资源配置元信息
    • Java 注解配置元信息
    • API 配置元信息
  • 自动模式- 实现方提供依赖自动关联的方式,按照內建的注入规则
    • Autowiring(自动绑定):no、byName、byType、constructor

1.2 依赖注入类型

依赖注入类型 配置元数据举例
Setter 方法 <proeprty name="user" ref="userBean" />
构造器 <constructor-arg name="user" ref="userBean" />
字段 @Autowired User user;
方法 @Autowired public void user(User user) { ... }
接口回调 class MyBean implements BeanFactoryAware { ... }

2. 自动绑定(Autowiring)

3. 自动绑定(Autowiring)模式

模式 说明
no 默认值,未激活Autowiring,需要手动指定依赖注入对象
byName 根据被注入属性的名称作为Bean 名称进行依赖查找,并将对象设置到该属性
byType 根据被注入属性的类型作为依赖类型进行查找,并将对象设置到该属性
constructor 特殊byType 类型,用于构造器参数

参考枚举:org.springframework.beans.factory.annotation.Autowire

4. 自动绑定(Autowiring)限制和不足

https://docs.spring.io/spring/docs/5.2.2.RELEASE/spring-framework-reference/core.html#beans-autowired-exceptions

5. Setter 方法依赖注入

  • 手动模式
    • XML 资源配置元信息
    • Java 注解配置元信息
    • API 配置元信息
  • 自动模式
    • byName
    • byType

6. 构造器依赖注入

  • 手动模式
    • XML 资源配置元信息
    • Java 注解配置元信息
    • API 配置元信息
  • 自动模式
    • constructor

7. 字段注入

  • 手动模式 - Java 注解配置元信息
    • @Autowired
    • @Resource
    • @Inject(可选)

8. 方法注入

  • 手动模式 - Java 注解配置元信息
    • @Autowired
    • @Resource
    • @Inject(可选)
    • @Bean

9. 回调注入

10. 依赖注入类型选择

11. 基础类型注入

12. 集合类型注入

13. 限定注入

14. 延迟依赖注入

15. 依赖处理过程

16. @Autowired 注入原理

17. JSR-330 @Inject 注入原理

18. Java 通用注解注入原理

19. 自定义依赖注入注解

20. 面试题精选

猜你喜欢

转载自www.cnblogs.com/binarylei/p/12308201.html