bean的创建
AnnotationConfigApplicationContext context
= new AnnotationConfigApplicationContext(Config.class);
Spring 容器的刷新
非懒加载的bean
// Instantiate all remaining (non-lazy-init) singletons.
finishBeanFactoryInitialization(beanFactory);
AbstractApplicationContext
preInstantiateSingletons
遍历所有的BeanDefinition
doGetBean
DoGetBean有就获取,没有就创建bean
return createBean(beanName, mbd, args);
创建bean
创建bean 里面有属性填充,属性填充包括了依赖注入
初始化 initializeBean
注册销毁bean
autowire依赖注入
创建bean的过程中,进行属性注入populateBean,将auwired的对象注入到被依赖的bean中
如:person里面autowired order,则将order 的bean注入到了person
populateBean
@Autowired是被AutowiredAnnotationBeanPostProcessor 处理的
对字段属性进行赋值注入