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

解决方案 »

  1.   

    最开始肯定是第一个,然后它会看第一个bean里面需要哪些bean,直到把第一个需要的注入后才会进行第二个。如果第三个是第一个需要的bean,说明已经注入过了,那么会跳过第三个。
      

  2.   

    从上而下遍历xml,如果遇到bean里有ref的,会检查对应的bean是否已经存在,如果不存在,则生成对应的bean后再设置成属性。
      

  3.   

    http://orange5458.iteye.com/blog/1159503
      

  4.   

    为什么要关心bean的注入顺序?
    因为存在bean依赖,所以实际加载顺序并不会和xml中的顺序一样