spring底层原理
2021-07-19 23:04:53 0 举报
spring底层原理
作者其他创作
大纲/内容
postProcessorBeforeIninialization
一:如果有beanFactory,则先销毁以及关闭掉
十二:初始化所有剩下的非懒加载的单例bean
监听器监听事件多播器
prepareRefresh()
八:initMessageSource();
对创建的beanFactory进行属性的填充
九:初始化事件监听多播器
六:调用beanFactoryPostProcessor对beanDefinition进行增强
十:applyBeanPostProcessorsAfterInitialization()
实例化
beanFactoryPostProcessor
initApplicationEnventMulticaster();
留给子类实现
beanPostProcessorBeforeInitialization
BeanDefitionbean定义信息
完整对象
cglib
七:注册BeanPostProcessors
bean的实例化以及初始化操作
注解
九:执行初始化方法
IOC容器
空方法,留给子类做扩展用的
三:getBean()-->doGetBean()
invokeBeanFactoryPostProcessors(beanFactory);
jdk
一:准备工作
源码流程
registerListeners();
五:postProcessBeanFactory();
populateBean
抽象定义规范接口
三:加载bean的定义信息beanDefinitions
执行aware接口需要实现的方法
二:实例化单例对象
七:执行aware接口实现的方法
最终找到一个反射构造器clazz.getDeclaredConstructor();ctor.newInstance();
零配置
BeanFactoryConstructor ctor = clazz.getDeclareConstructor();Object obj = ctor.newInstance();
一:属性值设置工作
invokeAwareMethods();
refresh方法中的13个方法
十一:注册监听器
填充属性
观察者模式
finishBeanFactoryInitialization(beanFactory);
为上下文初始化message源,即不同语言的消息体、国际化处理
四:准备beanFactory
四:createBean()-->doCreateBean();
十:onRefresh();
BeanPostProcessor接口实现类
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
销毁
bean定义信息
xml
finishRefresh();
十一:初始化完成,完整对象,返回
invokeInitMethods
BeanDefitionReader
在spring生命周期的不同阶段做不同的处理工作,如何做?
六:填充属性
初始化
prepareBeanFactory(beanFactory)
二:创建IOC容器
bean的实例化前准备工作
AOP,实现动态代理
loadBeanDefinitions(beanFactory);
八:applyBeanPostProcessorsBeforeInitialization()
十三:完成刷新过程
registerBeanPostProcessors(beanFactory);
初始化init-method方法
0 条评论
下一页