Spring入门学习——继承Bean配置
来源:互联网 发布:淘宝最大的店铺2017 编辑:程序博客网 时间:2024/05/17 08:33
同样,我们可以在子Bean中对父Bean的一些属性进行覆盖。<bean id="baseSequenceGenerator" class="com.cgy.springrecipes.sequence.SequenceGenerator">
<property name="prefixGenerator" ref="datePrefixGenerator" />
<property name="suffix" value="CGY" />
<property name="initial" value="10000" />
</bean>
<bean id="sequenceGenerator" parent="baseSequenceGenerator"/>
<bean id="sequenceGenerator1" parent="baseSequenceGenerator"/>
<bean id="datePrefixGenerator" class="com.cgy.springrecipes.sequence.DatePrefixGenerator">
<property name="pattern">
<value>yyyyMMdd</value>
</property>
</bean>
如果希望父Bean只是一个模板,而不能被实例使用,可以设置abstract属性。<bean id="sequenceGenerator1" parent="baseSequenceGenerator">
<property name="initial" value="20000"/>
</bean>
<bean id="baseSequenceGenerator" class="com.cgy.springrecipes.sequence.SequenceGenerator" abstract="true">
<property name="prefixGenerator" ref="datePrefixGenerator" />
<property name="suffix" value="CGY" />
<property name="initial" value="10000" />
</bean>
继承声明为abstract的Bean将会抛出
org.springframework.beans.factory.BeanIsAbstractException
package com.cgy.springrecipes.sequence;public class ReverseGenerator {private int initial;//这个类与序列化类一样,都具有initial属性public void setInitial(int initial) {this.initial = initial;s}}
,<!--这里抽取了initial属性,这个bean是抽象的,没有class属性-->
<bean id="baseGenerator" abstract="true">
<property name="initial" value="100000"/>
</bean>
<!--这个是序列号Bean的父Bean,也是抽象的,继承了baseGenerator,获取了initial属性-->
<bean id="baseSequenceGenerator" abstract="true" parent="baseGenerator"
class="com.cgy.springrecipes.sequence.SequenceGenerator">
<property name="suffix" value="CGY"/>
<property name="prefixGenerator" ref="datePrefixGenerator"/>
</bean>
<!--这个是ReverseGenerator的Bean配置,继承了baseGenerator,获取了initial属性-->
<bean id="reverseGenerator" parent="baseGenerator"
class="com.cgy.springrecipes.sequence.ReverseGenerator">
</bean><!--这个是用于生成序列号实例的Bean,继承了baseSequenceGenerator,获取了initial,suffix,prefix,
等属性-->
<bean id="sequenceGenerator" parent="baseSequenceGenerator"/>
<bean id="datePrefixGenerator" class="com.cgy.springrecipes.sequence.DatePrefixGenerator">
<property name="pattern">
<value>yyyyMMdd</value>
</property>
</bean>
个人总结:巧妙地利用继承,可以简化一些经常重复的代码,抽取一些通用的属性,组成一个抽象父Bean,再加以继承,
可以减少配置文件的篇幅。
- Spring入门学习——继承Bean配置
- Spring入门学习——bean属性配置(一)
- Spring入门学习——bean属性配置(二)
- Spring入门学习——外部化Bean配置
- Spring Bean配置继承
- Spring bean配置继承
- Spring 继承Bean配置
- spring—Bean配置
- spring—Bean配置
- Spring入门学习——用XML配置自动装配Bean
- Spring继承Bean的配置
- Spring bean xml 配置继承
- 【Spring学习10】依赖配置:bean的父子继承
- Spring入门——Spring Bean装配之Bean的配置项
- Spring入门学习——指定Bean引用
- Spring入门学习——设置Bean作用域
- Spring入门学习——使用Bean感知容器
- Spring入门学习——创建Bean后处理器
- Spring入门学习——用XML配置自动装配Bean
- CentOS 7防火墙问题,永久给…
- Spring入门学习——用@Autowired和@Resource自动装配Bean
- iOS 禁用UIWebView 加载 网页的长按事件
- WebSocket服务器只能被电脑浏览器…
- Spring入门学习——继承Bean配置
- WebSocket的ping与pong的java实现…
- Spring入门学习——从Classpath中扫描组件
- Netbeans 8下搭载tomcat&nbsp…
- Spring入门学习——伪数据库序列开发序列生成器
- UML状态图【代码例子】电梯在楼里…
- Spring入门学习——第一阶段学习总结图
- UML之十字圆圈连线箭头符号“包含”C…
- Spring入门学习——商品折扣简单示例