IOC的两种实现方式

本文详细介绍了Spring中IOC的两种实现方式:BeanFactory和ApplicationContext。BeanFactory采用延迟初始化策略,适用于资源有限的场景。而ApplicationContext则在启动时完成所有初始化,提供更多企业级功能,适合资源充足的应用。此外,还解析了Bean的初始化过程,包括通过反射生成代理对象,以及BeanPostProcessor在初始化前后的作用。
摘要由CSDN通过智能技术生成

IOC的两种实现方式

  1. 构造方法注入
  2. setter注入

Ioc需要实现两个技术:
- 对象的构建
- 对象的绑定

spring提供了两种类型的容器,一个是BeanFactory,一个是ApplicationContext(可以认为是BeanFactory的扩展),下面我们将介绍这两种容器如何实现对对象的管理。

BeanFactory

如果没有特殊指定,默认采用延迟初始化策略(lazy-load)。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入操作。所以,相对来说,容器启动初期速度较快,所需要的资源有限。对于资源有限,并且功能要求不是很严格的场景,BeanFactory是比较合适的 IoC容器选择。

我们先来看一下BeanFactory的关系图
image

有三个很重要的部分:

  • BeanDefinition 实现Bean的定义(即对象的定义),且完成了对依赖的定义
  • BeanDefinitionRegistry ,将定义好的bean,注册到容器中(此时会生成一个注册码)
  • BeanFactory 是一个bean工厂类,从中可以取到任意定义过的bean 。

最重要的部分就是BeanDefinition,它完成了Bean的生成过程。一般情况下我们都是通过配置文件(xml,properties)的方式对be

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值