--扫描class文件
--生成BeanDifinition
--BeanFactory 创建对象(没有赋值)
--BeanFactoryPostPRocessor bean工厂后置处理器只执行一次
--对象
--属性赋值
--BeanFactoryAware执行
--BeanPostPProcessor befaore方法执行
--init方法执行,比如实现InitializingBean接口、xml配置的init-method、@Bean(initMethod ="xx()")
--BeanPostPRocessor after方法执行
--BeanNameAware
--bean
--springContext
执行顺序AbstractApplicationContext.refresh
1、this.postProcessBeanFactory(beanFactory);
空方法,只有在如下类中会执行
2、this.invokeBeanFactoryPostProcessors(beanFactory);
会执行我们实现的BeanFactoryPostProcessors的类。
3、registerBeanPostProcessors(beanFactory);
注册自定义的 beanPostProcessors
4、initMessageSource();
初始化消息源
5、this.initApplicationEventMulticaster();
初始化监听器
6、this.onRefresh();
7、this.registerListeners();
8、this.finishBeanFactoryInitialization(beanFactory);
实例化自定义bean(非延迟加载)---重点
--》调用AbstractBeanFactory. doGetBean 创建bean
DefaultSingletonBeanRegistry.getSingleton 获取单例对象
网友评论