spring bean之间的关系:继承,依赖,注入
本文内容纲要:spring bean之间的关系:继承,依赖,注入
一 继承
spring中多个bean之间的继承关系,和面向对象中的继承关系类似,直接看代码。
先定义一个Person类
package com.demo.spring.entity;/**
* @author chenyk
* @date 2018年6月15日
*/
public class Person {
private String name;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
然后在beans.xml文件中配置:
<bean id="person" class="com.demo.spring.entity.Person" p:address="杭州" abstract="true"> </bean>
<bean id="person2" p:name="李四" parent="person">
</bean>
在beans.xml中,我们定义了一个name为person的抽象类,它作为一个父类,封装了共有的属性值address="杭州",由于定义了abstract="true",所以它不能被实例化。然后定义了一个name为person2的类,继承了person。
获取person2对象
@Test public void testBeanFactory(){
ClassPathResource resource = new ClassPathResource("beans.xml"); //找到资源文件,将bean解析为beanDefinition,
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
reader.loadBeanDefinitions(resource); //加载beanDefinition到容器中
Person person2 = (Person) beanFactory.getBean("person2");
System.out.println("name="+person2.getName()+";address="+person2.getAddress());
}
运行结果:name=李四;address=杭州
二 依赖:使用depends-on来实现依赖关系
定义一个Person类
package com.demo.spring.entity;/**
* @author chenyk
* @date 2018年6月15日
*/
public class Person {
private String name;
private String address;
private Air air;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Air getAir() {
return air;
}
public void setAir(Air air) {
this.air = air;
}
}
定义Air类
package com.demo.spring.entity;/**
* @author chenyk
* @date 2018年6月15日
*/
public class Air {
}
在beans.xml中配置
<bean id="person" class="com.demo.spring.entity.Person" p:name="张三" p:address="杭州" abstract="true"> </bean>
<bean id="person2" p:name="李四" parent="person" depends-on="air">
</bean>
<bean id="air" class="com.demo.spring.entity.Air">
</bean>
depends-on标签设置了依赖关系,则表示person2的属性air必须存在,否则报错;如果没有depends-on标签,则默认person2的属性air为null。
三 注入 :
注入,我们也可以称为依赖注入,注入的方式有三种:setter方法注入,构造器注入,通过注解的方式注入。这里就不详细讲解了
本文内容总结:spring bean之间的关系:继承,依赖,注入
原文链接:https://www.cnblogs.com/51life/p/9186991.html
以上是 spring bean之间的关系:继承,依赖,注入 的全部内容, 来源链接: utcz.com/z/295816.html