Aware环境感知接口
BeanFactoryAware
setBeanFactory()
Support工具类
AttributeAccessorSupport工具类
加载过程
定位配置文件
将配置载入内存
根据载入的信息将对象初化到ioc容器中
寻找入口 获取配置文件路径 容器开始启动 开始解析配置路径 载入配置路径 分配路径处理策略 解析配置文件路径 加载配置文件信息 开始解析配置文件
分配解析配置文件策略 将配置文件载入内存 载入
元素 载入 元素 载入 子元素 载入 元素
分配注册策略 开始向容器注册
bean生命周期
https://www.cnblogs.com/yanggb/articles/11004887.html
1.Bean容器找到配置文件中Spring Bean的定义。
2.Bean容器利用Java Reflection API创建一个Bean的实例。
3.如果涉及到一些属性值,利用set()方法设置一些属性值。
4.如果Bean实现了BeanNameAware接口,调用setBeanName()方法,传入Bean的名字。
5.如果Bean实现了BeanClassLoaderAware接口,调用setBeanClassLoader()方法,传入ClassLoader对象的实例。
6.如果Bean实现了BeanFactoryAware接口,调用setBeanClassFacotory()方法,传入ClassLoader对象的实例。
7.与上面的类似,如果实现了其他*Aware接口,就调用相应的方法。
8.如果有和加载这个Bean的Spring容器相关的BeanPostProcessor对象,执行postProcessBeforeInitialization()方法。
9.如果Bean实现了InitializingBean接口,执行afeterPropertiesSet()方法。
10.如果Bean在配置文件中的定义包含init-method属性,执行指定的方法。
11.如果有和加载这个Bean的Spring容器相关的BeanPostProcess对象,执行postProcessAfterInitialization()方法。
12.当要销毁Bean的时候,如果Bean实现了DisposableBean接口,执行destroy()方法。
13.当要销毁Bean的时候,如果Bean在配置文件中的定义包含destroy-method属性,执行指定的方法。
