IOC/DI/AOP回顾

IOC

BeanFactory 

ClassPathXmlApplicationContext

 

AbstractApplicationContext  通过调 refrech()方法  去实现ioc容器的初始化, 然后执行三个步骤

1、定位  主要执行 getResouce()方法   主要就是通过扫描路径去扫描配置文件

2、载入  主要是通过reader.loaderBeanDefinition()方法进行加载配置文件

3、注册  主要通过reqisterDefinition()方法将加载的配置文件注册到一个“配置文件信息”中   也就是一个map<String,BeanDefinition>

其实这个map就可以理解为是ioc容器。

 

DI

BeanFactory

实例化:

AbctractBeanFactory 通过getBean()方法去进行实例化bean,如果没有这个bean就 createbean()去实例化一个bean,通过CreateBeanInstan()去实例化这个bean,通过BeanWarpper()(原始对象,代理对象以及保证了所有对象的关系),最后存储到一个map中类型是 Warpper对象,map<String,warpper> 

注入:

初始化之后就开始注入,WarpperImpl通过setValue()方法,通过map中的对象在通过invork()反射方法进行赋值,然后搜集到需要注入的bean,最后存入到BeanFactory工厂中。

 

AOP

getProxy 保存到 beanWarpper对象中,在bean初始化时候有一个 是否是代理对象策略,如果是代理对象就通过 AOP JDK/CGlib去获取代理对象方法来获取bean,然后在走适配器来执行 前置(after)和后置(befor)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值