概要:
Spring配置文件中,当若干个bean的配置内容大部分都是相同的,只有少部分是不同的时候,如果按照普通的方式去配置这些bean,实际有太多的重复内容被配置。
可以通过抽象bean来实现简化。
抽象bean类似java中的父类,把公有的配置写在抽象bean中,可以实现简化。
具体操作:
通过指定abstract=“true”,来声明一个bean为抽象bean,可被继承;
<?xml version="1.0" encoding="GBK"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd"><!-- 定义Axe实例 --><bean id="steelAxe" class="org.crazyit.app.service.impl.SteelAxe"/><!-- 指定abstract="true"定义抽象Bean --><bean id="personTemplate" abstract="true"><property name="name" value="crazyit"/><property name="axe" ref="steelAxe"/></bean><!-- 通过指定parent属性指定下面Bean配置可从父Bean继承得到配置信息 --><bean id="chinese" class="org.crazyit.app.service.impl.Chinese"parent="personTemplate"/><bean id="american" class="org.crazyit.app.service.impl.American"parent="personTemplate"/></beans>
上面的配置与下面的等同
<?xml version="1.0" encoding="GBK"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd"><!-- 定义Axe实例 --><bean id="steelAxe" class="org.crazyit.app.service.impl.SteelAxe"/>- <!-- 通过指定parent属性指定下面Bean配置可从父Bean继承得到配置信息 -->
<bean id="chinese" class="org.crazyit.app.service.impl.Chinese"><property name="name" value="crazyit"/><property name="axe" ref="steelAxe"/><bean/><bean id="american" class="org.crazyit.app.service.impl.American"><property name="name" value="crazyit"/><property name="axe" ref="steelAxe"/><bean/></beans>
转载请标明出处:http://www.cnblogs.com/ssslinppp/

浙公网安备 33010602011771号