spring容器加载

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级缓存,

posted @ 2023-09-01 11:57  一个有理想的猿  阅读(33)  评论(0编辑  收藏  举报