IOC容器及其原理(一)

一个bean诞生需要经过两个阶段,容器启动阶段和Bean实例化阶段。


下面我们通过这个图来说明

        加载 解析配置信息,主要就是依靠ResouceLoader来加载并且解析资源(xml文件),然后封装成了Resouce。

        装配BeanDefinition 就是BeanDefinitionReader读取Resource 转换为BeanDefinition, BeanDefition含有这个Bean的Class对象,可以利用反射机制生成这个对象。然后注册BeanDefinition. 就是把信息存放到一个concurrentHashMap中,key为bean的名字,value为beandefinition。

        后处理指的是容器启动阶段的定制操作,通过实现BeanFactoryPostProcessor接口来进行定制,就是获得BeanDefinition,修改BeanDefinition.如下图所示。




Spring 实例化对象,利用bean的class对象反射机制生成对象,并且装配依赖。前置处理,后置处理都能得到bean,修改bean。




如果一个bean不是单例的,那么到执行getBean才会实例化和注入依赖。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值