第八章:Spring IoC 依赖注入(2)

@[TOC](第八章:Spring IoC 依赖注入(2))

11. 基础类型注入

基础类型
• 原生类型(Primitive):boolean、byte、char、short、int、float、long、double
• 标量类型(Scalar):Number、Character、Boolean、Enum、Locale、Charset、Currency、
Properties、UUID
• 常规类型(General):Object、String、TimeZone、Calendar、Optional 等 • Spring 类型:Resource、InputSource、Formatter 等

12. 集合类型注入

• 集合类型
• 数组类型(Array):原生类型、标量类型、常规类型、Spring 类型
• 集合类型(Collection) • Collection:List、Set(SortedSet、NavigableSet、EnumSet) • Map:Properties

13. 限定注入

• 使用注解 @Qualifier 限定
• 通过 Bean 名称限定
• 通过分组限定
• 基于注解 @Qualifier 扩展限定
• 自定义注解 - 如 Spring Cloud @LoadBalanced

14. 延迟依赖注入

• 使用 API ObjectFactory 延迟注入
• 单一类型
• 集合类型
• 使用 API ObjectProvider 延迟注入(推荐)
• 单一类型
• 集合类型

15. 依赖处理过程

• 基础知识
• 入口 - DefaultListableBeanFactory#resolveDependency
• 依赖描述符 - DependencyDescriptor
• 自定绑定候选对象处理器 - AutowireCandidateResolver

16. @Autowired 注入原理

• @Autowired 注入规则
• 非静态字段
• 非静态方法
• 构造器
• @Autowired 注入过程
• 元信息解析
• 依赖查找
• 依赖注入(字段、方法)

17. JSR-330 @Inject 注入原理

• @Inject 注入过程
• 如果 JSR-330 存在于 ClassPath 中,复用 AutowiredAnnotationBeanPostProcessor 实现

18. Java通用注解注入原理

• CommonAnnotationBeanPostProcessor
• 注入注解
• javax.xml.ws.WebServiceRef
• javax.ejb.EJB
• javax.annotation.Resource
• 生命周期注解
• javax.annotation.PostConstruct
• javax.annotation.PreDestroy

19. 自定义依赖注入注解

• 基于 AutowiredAnnotationBeanPostProcessor 实现
• 自定义实现
• 生命周期处理
• InstantiationAwareBeanPostProcessor
• MergedBeanDefinitionPostProcessor
• 元数据
• InjectedElement
• InjectionMetadata

20. 面试题精选

1、- 有多少种依赖注入的方式?
答:构造器注入
Setter 注入
字段注入
方法注入
接口回调注入
2、你偏好构造器注入还是 Setter 注入?
答:两种依赖注入的方式均可使用,如果是必须依赖的话,那么推荐使用构
造器注入,Setter 注入用于可选依赖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值