Spring Bean之间的关系

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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>元素里的所有属性都会被继承。比如:autowire,abstract等也可以忽略父bean的class属性,让子bean指定自己的类,而共享相同的属性配置,但此时abstract必须设为true依赖bean配置Spring允许用户通过depends-on属性设定bean前置依赖的bean,前置依赖的bean会在本bean实例化之前创建如果前置依赖多个bean,则可以通过逗号,空格的方式配置bean的名称

示例:

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:p="http://www.springframework.org/schema/p" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 7 <!-- 抽象bean:bean的abstract属性为true的bean,这样的bean不能被IOC实例化,只能用来被继承配置 8 若某一个bean的class属性没有指定,则改bean必须是一个抽象bean 9 -->10 <bean id="address" 11 p:city="BeiJing" p:street="HuiLongGuan" abstract="true"></bean>12 <!-- bean配置的继承:使用bean的parent属性指定继承哪个bean的配置 -->13 <bean id="address2" class="com.yl.autowire.Address" parent="address"></bean>14 15 <bean id="address3" class="com.yl.autowire.Address" 16 parent="address2" p:street="WuDaoKou"></bean>17 18 <bean id="car" class="com.yl.autowire.Car" 19 p:brand="Audi" p:price="300000"></bean>20 <!-- 要求在配置person时,必须有一个关联的car!换句话就是person这个bean依赖于car这个bean -->21 <bean id="person" class="com.yl.autowire.Person" 22 p:name="Tom" p:address-ref="address2" depends-on="car"></bean>23 </beans>

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航