刚开始跟着视频学习Spring,现遇到下面一个小问题不明白
spring配置文件的片段如下:
    <bean id = "car" class ="autowire.Car" p:brand="Aodi" p:price="100000"></bean>
    <bean id = "person" class ="autowire.Person" p:name="Mike" p:address-ref="address"  p:car-ref="car"></bean>
    <bean id = "person2" class ="autowire.Person" p:name="Jack" p:address-ref="address" depends-on="car"></bean>
main测试函数片段如下:
   Person person = (Person) ctx.getBean("person");
   System.out.println(person);
   Person person2 = (Person) ctx.getBean("person2");
   System.out.println(person2);
输出结果:
   Person [name=Mike, address=Address [city=Beijing, street=Wudaokou], car=Car [brand=Aodi, price=100000.0]]
   Person [name=Jack, address=Address [city=Beijing, street=Wudaokou], car=null]
请问一下大家,为什么使用depend-on设置依赖bean的时候,Car对象为空呢?depend-on和ref的有什么区别呢?

解决方案 »

  1.   

    因为在创建person2 实例的时候,你没有传入一个初始化好了的car 实例.
      

  2.   

    depends-on 只是申明了bean与bean之间的初始化顺序,而ref是注入bean到对应的bean所以Person2只是在car之后初始化,并没有注入car对象到Person2的car属性里,所以Person2的car属性为空。
      

  3.   

    因为在创建person2 实例的时候,你没有传入一个初始化好了的car 实例.口碑极佳的的最全基础教程分享给你们:http://mrw.so/5eOtLh