日期:2014-05-20  浏览次数:20769 次

spring装载bean的小问题
比如有一个很简单的applicationContext.xml配置文件,里边配置了5个bean,
然后拿到context对象
ApplicationContext context = new ClassPathXmlApplicationContext();
这时所有bean的属性应该已经注入进去了吧?
所有的bean注入的顺序是什么样的?我在setxxx方法里打了log,发现不是按照xml的记录从上到下的顺序进行注入的。
谢谢

------解决方案--------------------
最开始肯定是第一个,然后它会看第一个bean里面需要哪些bean,直到把第一个需要的注入后才会进行第二个。如果第三个是第一个需要的bean,说明已经注入过了,那么会跳过第三个。
------解决方案--------------------
从上而下遍历xml,如果遇到bean里有ref的,会检查对应的bean是否已经存在,如果不存在,则生成对应的bean后再设置成属性。
------解决方案--------------------
http://orange5458.iteye.com/blog/1159503
------解决方案--------------------
为什么要关心bean的注入顺序?
因为存在bean依赖,所以实际加载顺序并不会和xml中的顺序一样