Spring中使用depend-on依赖和使用ref引入依赖

哈哈一笑很倾城 2016-11-23 04:35:44
刚开始跟着视频学习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的有什么区别呢?
...全文
423 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40599844 2019-11-22
  • 打赏
  • 举报
回复
因为在创建person2 实例的时候,你没有传入一个初始化好了的car 实例.口碑极佳的的最全基础教程分享给你们:http://mrw.so/5eOtLh
KahoChan 2019-11-20
  • 打赏
  • 举报
回复
depends-on 只是申明了bean与bean之间的初始化顺序,而ref是注入bean到对应的bean 所以Person2只是在car之后初始化,并没有注入car对象到Person2的car属性里,所以Person2的car属性为空。
qq_39713775 2019-07-24
  • 打赏
  • 举报
回复
同问啊 老哥解决了吗
soton_dolphin 2016-11-23
  • 打赏
  • 举报
回复
因为在创建person2 实例的时候,你没有传入一个初始化好了的car 实例.

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧