1、bean配置的继承关系
① 通过parent属性继承相同类的bean的配置,被继承的是父bean,继承的是子bean
② 子bean会从父bena中继承配置,包括父bean的属性和配置值
③ 子bean可以通过赋值来覆盖继承过来的配置
④ 父类使用 abstract=”true”时,不能被IOC容器实例化,只用于被继承配置(属性和值)
⑤ 如果一个bean没有指定class,则必须是一个抽象bean
⑥ 作用:使当前bean获取到父bean的配置属性
2、bean配置的依赖关系
① 使DependsBean依赖于RelationBean,如果DependsBean(dependsBean)缺少RelationBean的bean(relBeanDe)就会报错
② 如果依赖多个bean,可以通过都搞后空格配置depends-on的值
③ 作用:当前的bean中可以出现被依赖bean的属性或者配置参数
3、文件
①TestRelation.java:测试类
②DependsBean.java:测试继承关系的类
③RelationBean.java:测试依赖关系的类
④relationContext.xml:配置文件
4、TestRelation.java
package com.demo.sshtest.relation;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestRelation {
public static void main(String[] args) {
relation();
depends();
}
public static void relation(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("relationContext.xml");
RelationBean relationBean = (RelationBean)applicationContext.getBean("relBean");
System.out.println(relationBean);
relationBean = (RelationBean)applicationContext.getBean("relBean2");
System.out.println(relationBean);
RelationBean relationBeanAbs = (RelationBean)applicationContext.getBean("relBean3");
System.out.println(relationBeanAbs);
}
public static void depends(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("relationContext.xml");
DependsBean dependsBean = (DependsBean)applicationContext.getBean("dependsBean");
System.out.println(dependsBean);
}
}
5、DependsBean.java
package com.demo.sshtest.relation;
public class DependsBean {
private Integer id;
private String name;
private RelationBean relationBean;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public RelationBean getRelationBean() {
return relationBean;
}
public void setRelationBean(RelationBean relationBean) {
this.relationBean = relationBean;
}
@Override
public String toString() {
return "DependsBean [id=" + id + ", name=" + name + ", relationBean=" + relationBean + "]";
}
}
6、RelationBean.java
package com.demo.sshtest.relation;
public class RelationBean {
private Integer id;
private String name;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "RelationBean [id=" + id + ", name=" + name + ", password=" + password + "]";
}
}
7、relationContext.xml
<?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"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
<!-- bean配置的继承关系
1、通过parent属性继承相同类的bean的配置,被继承的是父bean,继承的是子bean
2、子bean会从父bena中继承配置,包括父bean的属性和配置值
3、子bean可以通过赋值来覆盖继承过来的配置
4、父类使用 abstract="true"时,不能被IOC容器实例化,只用于被继承配置(属性和值)
5、如果一个bean没有指定class,则必须是一个抽象bean
6、作用:使当前bean获取到父bean的配置属性
-->
<!-- 父bean -->
<bean id="relBean" class="com.demo.sshtest.relation.RelationBean"
p:id="1" p:name="AA" p:password="666"></bean>
<bean id="relBeanAbs" p:id="2" p:name="aa" p:password="111" abstract="true"></bean>
<!-- 子bean -->
<bean id="relBean2" p:password="777" parent="relBean"></bean>
<bean id="relBean3" class="com.demo.sshtest.relation.RelationBean" parent="relBeanAbs"></bean>
<!-- bean配置的依赖关系
1、使DependsBean依赖于RelationBean,如果DependsBean(dependsBean)缺少RelationBean的bean(relBeanDe)就会报错
2、如果依赖多个bean,可以通过都搞后空格配置depends-on的值
3、作用:当前的bean中可以出现被依赖bean的属性或者配置参数
-->
<bean id="relBeanDe" class="com.demo.sshtest.relation.RelationBean"
p:id="5" p:name="rr" p:password="1q2w3e"></bean>
<bean id="relBeanDe2" class="com.demo.sshtest.relation.RelationBean"
p:id="5" p:name="rr" p:password="1q2w3e"></bean>
<bean id="dependsBean" class="com.demo.sshtest.relation.DependsBean"
p:id="9" p:name="yy" depends-on="relBeanDe,relBeanDe2"></bean>
</beans>
8、注意事项:
①bean配置的继承关系时,要先配置父类,再在配置子类的时候用parent属性关联父类,调用的时候调用父类
②bean配置的依赖关系时,要先配置bean,然后配置依赖bean,并使用depend-on关联之前配置好的bean,调用的是依赖bean
9、项目目录
10、demo
https://download.csdn.net/download/qq_22778717/10470301