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配置。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值