首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Spring承袭

2012-09-20 
Spring继承Spring支持继承,可以分为类继承和属性继承?1. 类继承?? ?Spring属性:?(1)abstract: 如果设置为t

Spring继承

Spring支持继承,可以分为类继承和属性继承

?

1. 类继承

?

? ?Spring属性:

?(1)abstract: 如果设置为true,表示定义的bean是抽象的,告诉spring不要实例化这个bean;

问题:必须是抽象类么?可以不是抽象类么?

?(2)parent: 指明bean的id,对bean的作用,相当于extends对于java类的作用;

?

?

? ?场景:有三个Bean:

<bean id = "bean1" class = "……TestBean">

<property name="sex" value="male"/>

</bean>

<bean id = "bean2" class = "……TestBean">

<property name="sex" value="male"/>

</bean>

<bean id = "bean3" class = "……TestBean">

<property name="sex" value="female"/>

</bean>

?

? 修改:定义spring 父bean

<bean id ="BaseBean" class ="……TestBean">

<property name="sex" value="male"/>

</bean>

定义子Bean

<bean id ="bean1" parent = "BaseBean"/> ? ? ?继承父Bean的属性

<bean id ="bean2" parent = "BaseBean"/>?

<bean id ="bean3" parent = "BaseBean">? ?覆盖父Bean的属性

<property name="sex" value="female"/>

</bean>

?

子bean可以继承父Bean的属性,也可以覆盖父Bean的属性

?

?

?

2. 属性继承

?

? ? 几个不同Bean之间存在相同的属性,可以抽离出来

?

? ? 场景:?

?

?

<bean id = "bean1" class = "……ATestBean">

<property name="sex" value="male"/>

<property name="task" ref="task"/>

</bean>

<bean id = "bean2" class = "……BTestBean">

<property name="sex" value="male"/>

</bean>

?

?

? ? ?修改:(1) 抽取公共属性

?

<bean id = "baseSex" abstract="true">

<property name="sex" value="male"/>

</bean>

?

(2)bean修改

<bean id = "bean1" class = "……ATestBean"?parent="baseSex">

<property name="task" ref="task"/>

</bean>

<bean id = "bean2" class = "……BTestBean" parent="baseSex"/>

?

?

?

这里bean同时有parent和class属性,其中parent指向的baseSex,就是为了让不同Bean之间共享相同的属性值;在TransactionProxyFactoryBean声明业务时,Bean属性继承能够明显的减少冗余的xml配置。

?

?

?

?

?

热点排行