1:准备加载Bean工厂---首先肯定告诉我们的程序,我需要加载容器了,从哪里开始加载,可能是从classpath(XML)或者Annotation(注解),接着spring会执行refresh()方法
这个方法首先会判断当前是否有容器,如果有的话就关闭,没有就创建
2:获得Bean工厂-----spring会解析我们的配置文件,把配置信息,解析成BeanDefinitions
3:创建Bean工厂-----会忽略实现了AWAY接口的特殊SET方法的自动装配,为什么会忽略,因为需要使用AWAY接口SET的这些属性,不依赖自动装配,也不能依赖自动装配,
为什么不能依赖自动装配,比如这些这些特殊属性中,有一个是存放spring容器,那么此时我这个容器还没创建好,就没办法把容器给这个属性,所有会忽略
这些特殊的属性Spring会在某个时间给他装配上
4:Bean工厂创建完成后可以我们做一些特殊的操作,比如打印一句话
5:加载Bean的时候,每一个Bean加载完成后我们可以做一些自己的扩展,比如Aop,在加载Bena的时候会有前置通知,init初始化,后置通知
这样下来bean就初始化结束了,当然循环依赖除外,如果发生了循环依赖,spring有一套处理方案就是,3级缓存,
标签:装配,容器,依赖,spring,Bean,加载 From: https://www.cnblogs.com/lly-rainbow/p/17506608.html