refresh( )

refresh()

refresh( )

1、准备工作;

prepareRefresh();

refresh( )

2、创建beanFactory

ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
但是还没有填充属性

refresh( )

3、对beanFactory填充属性

prepareBeanFactory(beanFactory);

refresh( )

4、PostProcessBeanFactory

没有具体实现方法,子类覆盖方法做额外的处理,此处我们自己一般不做任何拓展工作

refresh( )

5、调用各种beanFactory处理器

invokeBeanFactoryPostProcessors(beanFactory);

6、注册bean处理器

registerBeanPostProcessors(beanFactory);
只是注册,真正调用的是getBean方法

7、国际化处理

initMessageSource();

8、初始化事件监听多路广播器

initApplicationEventMulticaster();

9、初始化剩下的单实例(非懒加载的)

finishBeanFactoryInitialization(beanFactory);

refresh( )

beanFactory.preInstantiateSingletons();
实例化所有非懒加载对象

refresh( )

  • List beanNames = new ArrayList<>(this.beanDefinitionNames);
  • 将所有beandefintion的名字创建一个集合
上一篇:matlab read txt


下一篇:在Ubuntu16.04安装ROS kinetic碰到的问题 源头解决rosdep update问题