Bean之间的关系

Bean之间的关系:继承;依赖

【继承Bean的配置】

1.Spring允许继承bean的配置,被继承的bean称为父bean。继承这个父bean的Bean称为子bean。

2.子Bean从父Bean中继承配置,包括Bean的属性配置。

3.子Bean也可以覆盖从父Bean继承过来的配置。

/spring-1/src/beans-relation.xml:

1 <bean id="address" class="com.hk.beans.autowire.Address"
2       p:city="Beijing^" p:street="WuDaoKou"></bean>
3
4 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 -->
5 <bean id="address2" p:city="Beijing" p:street="GuoMao" parent="address"></bean>

运行结果:

4.父Bean可以作为配置版本,也可以作为Bean实例。若只想把父Bean作为模板,可以设置<bean>的abstract属性设为true,这样Spring将不会实例化这个Bean。

/spring-1/src/beans-relation.xml:

1 <!-- 抽象bean:bean的abstract属性为true的bean,这样的bean不能被IOC容器实例化,只用来被继承配置        若某一个bean的class属性没有指定,则该bean必须是一个模板。       -->
2 <bean id="address" class="com.hk.beans.autowire.Address"
3       p:city="Beijing^" p:street="WuDaoKou" abstract="true"></bean>
4
5 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 -->
6 <bean id="address2" p:city="Beijing" p:street="GuoMao" parent="address"></bean>

运行结果:

5.并不是<bean>元素里的所有属性都会被继承。比如:autowire,abstract等。

6.也可以忽略父Bean的class属性,让子Bean指定自己的类,而共享相同的属性配置。但此时abstract必须设为true。

1 <bean id="address" p:city="Beijing^" p:street="WuDaoKou" abstract="true"></bean>
2
3 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 -->
4 <bean id="address2" class="com.hk.beans.autowire.Address"
5       p:city="Beijing" p:street="GuoMao" parent="address"></bean>

7.当子Bean没有给属性赋值,就会继承父Bean的属性值。

配置文件:

1 <bean id="address" p:city="Beijing^" p:street="WuDaoKou" abstract="true"></bean>
2
3 <!-- bean配置的继承:使用bean的parent属性,继承哪个配置 -->
4 <bean id="address2" class="com.hk.beans.autowire.Address"
5       parent="address"></bean>

运行结果:

【依赖Bean配置】

1.Spring允许用户通过depends-on属性设定Bean前置依赖的Bean,前置依赖的Bean会在本Bean实例化之前创建好。

配置文件:

1       <bean id="car" class="com.hk.beans.autowire.Car"
2             p:brand="Audi" p:price="300000"></bean>
3
4       <!-- 要求在配置Person时,必须有一个关联的car!换句话说,person这个bean依赖于car这个bean -->
5       <bean id="person" class="com.hk.beans.autowire.Person"
6             p:name="Tom" p:address-ref="address2" depends-on="car"></bean>

运行结果:

2.如果前置依赖于多个Bean,则可以通过逗号,空格或的方式配置Bean的名称。

原文地址:https://www.cnblogs.com/zhzcode/p/9610803.html

时间: 2024-08-28 12:54:39

Bean之间的关系的相关文章

Spring初学之bean之间的关系和bean的作用域

一.bean之间的关系 <?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.o

Spring学习--Bean 之间的关系

Bean 之间的关系:继承.依赖. Bean 继承: Spring 允许继承 bean 的配置 , 被继承的 bean 称为父 bean , 继承这个父 bean 的 bean 称为子 bean. 子 bean 从父 bean 中继承配置 , 包括 bean 的属性配置. 子 bean 也可以覆盖从父 bean 继承过来的配置. 父 bean 可以作为配置模板 , 也可以作为 bean 实例.若只想把父 bean 作为模板 , 可以设置 <bean> 的 abstract 属性为 true ,

Spring Bean之间的关系

bean之间的关系:继承和依赖继承bean的配置 Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的bean称为子bean 子bean从父bean中继承配置,包括bean的属性配置 子bean也可以覆盖从父bean继承过来的配置 父bean可以作为配置模版,也可以作为bean实例,若只想把父bean作为模板,可以设置<bean>的abstract属性为true,这样Spring将不会实例化这个bean 并不是<bean>元素里的所有属性都会被继

峰Spring4学习(5)bean之间的关系和bean的作用范围

一.bean之间的关系: 1)继承: People.java实体类: package com.cy.entity; public class People { private int id; private String name; private int age; private String className; public int getId() { return id; } public void setId(int id) { this.id = id; } public Strin

【Spring】IOC容器之bean之间的关系

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文主要讲了Spring中Bean之间的关系,分为继承.依赖和引用三个类型.文章中都分别有例子和用法分析. 一.继承Bean配置 Spring允许继承bean的配置 ,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean 子Bean从父Bean中继承配置,包括Bean的属性配置 子Bean也可以 覆盖 从父Bean继承过来的配置 父Bean可以作为配置模版,也可以作为B

3.spring:自动装配/Bean之间的关系/作用域/外部文件/spel/

1.自动装配/手动装配 xml配置文件里的bean自动装配 Spring IOC 容器里可以自动的装配Bean,需要做的仅仅是在<bean>的autowire属性里面指定自动装配模式 ->byType(根据类型自动进行装配):若IOC容器里需要有多个与目标Bean类型一样的Bean,在这种情况子下,Spring无法判定那个Bean合适,所以不能执行自动装配 ->byName(根据名称自动装配):必须将目标Bean的名称和属性名设置完全相同, ->constuuctor(通过是

XML配置里的Bean自动装配与Bean之间的关系

需要在<bean>的autowire属性里指定自动装配的模式 byType(根据类型自动装配) byName(根据名称自动装配) constructor(通过构造器自动装配) 名字须与属性名一致 byName根据Bean的名字和当前bean的setter风格的属性名进行自动装配,若有匹配的,则进行自动装配,没有则不装配 byType  根据bean的类型和当前bean的属性的类型进行自动装配 缺点:有一个以上的类型匹配的bean则抛异常 自动装配的缺点 不够灵活,不能两者兼而言之 Bean之间

Spring 学习笔记(五)—— Bean之间的关系、作用域、自动装配

继承 Spring提供了配置信息的继承机制,可以通过为<bean>元素指定parent值重用已有的<bean>元素的配置信息. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XML

Spring &lt;bean&gt; 之间的关系&amp;整合多个配置文件

Spring 不但可以通过 <ref>  引用另一个 Bean,建立起 Bean 和 Bean 之间的依赖关系,<bean> 元素标签之间也可以建立类似的关系,完成一些特殊的功能. 1.继承 OOP思想告诉我们,如果多个类拥有相同的方法和属性,则可以引入一个父类,在父类中定义这些类共同的方法和属性,以消除重复的代码.同样,如果多个 <bean> 存在相同的配置信息,则 Spring 允许定义一个父<bean>,子<bean>将自动继承父<b