bean的生命周期
作者:bin1.从xml配置文件,或者注解加载BD,beanDefinition
2.执行BD的postProcessMergedBeanDefinition,合并注解到BD中, 扫注解,例如@Autowired、@PostConstruct
3.创建bean实例
4.如果开启了循环依赖支持,将bean提前暴露,如果出现循环依赖,通过AbstractAutoProxyCreator.getEarlyBeanReference(),提前完成代理
5.填充bean的属性(set)
6.执行aware,设置beanname,beanclassloader等
7.执行初始化前置处理器,ProcessorsBeforeInit
8.执行用户自定义的初始化bean方法,即@PostConstruct注解的方法
9.执行初始化后置处理器,PostProcessorsAfter,这里完成代理操作,AbstractAutoProxyCreator.postProcessAfterInitialization()
10.返回bean