基于Spring depends-on的使用详解

这篇文章主要介绍了Spring depends-on的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Spring depends-on的使用

通过在XML中的里配置depends-on属性或者在一个类上使用注解@DependsOn,可以使一个Bean的产生依赖于其他几个Bean。

请看如下代码

son这个Bean的产生依赖于mother这个Bean。

Spring Depends-On 不起作用

beans-realation.xml

package com.yuxishua.beansrelation; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClasspathXmlApplicationContext; import com.yuxishua.autowire.Address; import com.yuxishua.autowire.Car; import com.yuxishua.autowire.Person; public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClasspathXmlApplicationContext("beans-realation.xml"); Person person = (Person) ctx.getBean("person"); Address address2 = (Address) ctx.getBean("address2"); Car car = (Car) ctx.getBean("car"); System.out.println(address2 ); System.out.println(person); System.out.println(car); } }

package com.yuxishua.autowire; public class Person { private String name; private Address address; private Car car; @Override public String toString() { return "Person [name=" + name + ", address=" + address + ", car=" + car + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } }

package com.yuxishua.autowire; public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "Car [brand=" + brand + ", price=" + price + "]"; } }

package com.yuxishua.autowire; public class Address { private String city; private String street; @Override public String toString() { return "Address [city=" + city + ", street=" + street + "]"; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } }

就上面的代码,结果输出

Person [name=Tom, address=Address [city=Beijing, street=HanSenLU], car=null]

car 为什么没有注入呢,是spring版本的问题吗?还是什么原因?

spring为4.0.8

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程之家。

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...