您的位置:首页 > 编程语言 > Java开发

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

2016-02-25 20:40 651 查看
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"

>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: