概要:
Spring配置文件中,当若干个bean的配置内容大部分都是相同的,只有少部分是不同的时候,如果按照普通的方式去配置这些bean,实际有太多的重复内容被配置。
可以通过抽象bean来实现简化。
抽象bean类似java中的父类,把公有的配置写在抽象bean中,可以实现简化。
具体操作:
通过指定abstract=“true”,来声明一个bean为抽象bean,可被继承;
<!-- 共用设定 -->
<bean id="commonController" abstract="true">
<property name="errorAttributes" ref="errorAttributes" />
<property name="errorAttributesExposer" ref="errorAttributesExposer" />
<property name="exceptionLogger" ref="httpStatusAwareExceptionLogger" />
</bean>
<!-- 继承abstractExceptionHandlingController的配置信息 -->
<bean class="jp.co.ExceptionHandlingViewController" parent="commonController">
<property name="defaultErrorView" value="forward:/common/XXXX0160/init" />
</bean>
<!-- 继承abstractExceptionHandlingController的配置信息 -->
<bean class="jp.co.ExceptionHandlingApiController" parent="commonController">
<property name="apiErrorResponseCreator" ref="apiErrorResponseCreator" />
<property name="defaultErrorViewUrl" value="/common/XXXX0160/init" />
</bean>