首先要了解depends-on或@DependsOn作用,是用来表示一个bean A的实例化依赖另一个bean B的实例化, 但是A并不需要持有一个B的对象,如果需要的话就不用depends-on,直接用依赖注入就可以了或者ref标签。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="beanOne" class="com.picc.spring.dependson.ExampleBean" depends-on="managerBean"> </bean>
<bean id="managerBean" class="com.picc.spring.dependson.ManagerBean"></bean>
</beans>
package com.picc.spring.dependson;
public class ExampleBean {
public ExampleBean() {
System.out.println("beannoe");
}
}
package com.picc.spring.dependson;
public class ManagerBean {
public ManagerBean() {
System.out.println("ManagerBean");
}
}
@Test
public void testDepencyon(){
ExampleBean clientService = classPath.getBean("beanOne", ExampleBean.class);
System.out.println(clientService);
}
会先实例化managerBean,然后实例化beanOne