spring学习小结3——bean之间的继承,依赖关系

bean之间的关系:继承,依赖


继承bean的配置:
1.spring允许继承bean的配置。被继承的bean称为父bean。继承这个父bean的bean被称为子bean。
子bean从父bean中继承配置,包括bean的属性配置。
子bean也可以覆盖从父bean中继承过来的配置。 


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


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


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


  


<!-- 抽象 bean: bean的 abstract 属性为 true 的 bean。这样的bean不能被IOC容器实例化,只用来被继承配置。
若某一个bean的class属性没有指定,则该bean必须是一个抽象bean,即 abstract = "true"必须成立
-->
<bean id = "address" 
p:city="Beijing" p:street="wudaokou" abstract = "true">
</bean>

<!-- 一般的写法
<bean id = "address2" class = "com.hl.spring.autowrite.Address"
p:city="Beijing" p:street="daguansi">
</bean>
-->
 
<!-- bean 配置的继承:使用bean的parent属性和指定继承哪个bean的配置 -->
<bean id = "address2" p:city="Beijing>" parent = "address" class = "com.hl.spring.autowrite.Address">
</bean>




依赖bean配置:
spring允许用户depends-on属性设定bean 前置依赖的bean。前置依赖的bean会在本bean实例化之前创建好。
如果前置依赖多个bean,则可以通过逗号或空格的方式配置bean的名称。


<!-- 下面的person依赖于car,所以car必须要在person前定义,否则会出错 -->
<bean id = "car"  class = "com.hl.spring.autowrite.Car" p:brand="audi" p:price="2222"></bean>

<!-- 要求在配置person时,必须有一个关联的car!或者说, person这个 bean 依赖于 car 这个 bean-->
<bean id = "person"  p:name="person" p:address-ref="address2" class = "com.hl.spring.autowrite.Person"
depends-on = "car"
>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值