
自己做的话如何做spring 
1.架构图
ioc
aop ===> 容器(从对象的创建和销毁进行管理)
bean beanDefinition(接口)

BeanDefinitionReader 作用
定义规范 如果扩展可以扩展 这是一个接口可以更改实现类
BeanDefintion Bean 的定义信息 读取到了xml所有属性 准备去通过反射去实例化 但是不能直接反射 考虑扩展性
在beanDefinition创建需要改变bean的个性化修改怎么办 比如@value怎么做 因为定义信息在BeanDefintion 里面 数据也在这里
BeanFactoryPostProcessor (bean工厂后置处理器
抽象自动代理创建者
自定义BeanFactoryPostProcessor 交给spring管理之后就能调用
获取bean 对象时会调用

aplicationContext 设置 Aware 忽略
代理详情




Bean的创建流程



prepareRefresh 准备刷新 记录时间 记录日志
env 获取环境对象验证属性资源
存储预刷新的监听器(观察者模式)
2.刷新beanfactory 获得beanFactory
如果有工厂销毁 关闭 创建一个新工厂创建一个defaultListable bean工厂

beanfactory的初始化操作 设 置 属性值设置忽略aware

factory后置增强
循环beanFactoryPostProcessor
