我需要在我的骡子流中的两个地方使用一个春豆。 Bean有3个属性,其中1个是另一个bean。是否可以在单个位置定义主bean并仅覆盖已更改的属性。说这是我的bean声明:
<custom-transformer name="soapFaultTransformer" class="com.xxx.xx.transformer.VelocityMessageTransformer">
<spring:property name="velocityEngine" ref="velocityEngine" />
<spring:property name="templateName" value="soapFault.vm" />
<spring:property name="beanClass">
<spring:bean class="com.xxx.services.xx.Soap11Fault">
<spring:property name="faultCode" value="Client" />
<spring:property name="faultString" value="Invalid Request" />
<spring:property name="detail" value="This request is not valid" />
</spring:bean>
</spring:property>
我只想更改以下2个属性:
<spring:property name="faultString" value="Invalid Request" />
<spring:property name="detail" value="This request is not valid" />
有可能吗?
谢谢
答案 0 :(得分:1)
最好的方法是声明一个全局抽象父bean,使用公共属性配置,然后在需要的地方引用它,将特定属性设置为所需的值。
以下是SOAP错误的抽象bean的声明:
<spring:beans>
<spring:bean name="abstractSoap11Fault" abstract="true"
class="com.xxx.services.xx.Soap11Fault">
<spring:property name="faultCode" value="Client" />
</spring:bean>
</spring:beans>
当我们将其用作父bean时,我们使用其特定值指定其他属性:
<custom-transformer name="soapFaultTransformer"
class="com.xxx.xx.transformer.VelocityMessageTransformer">
<spring:property name="velocityEngine" ref="velocityEngine" />
<spring:property name="templateName" value="soapFault.vm" />
<spring:property name="beanClass">
<spring:bean parent="abstractSoap11Fault">
<spring:property name="faultString" value="Invalid Request" />
<spring:property name="detail"
value="This request is not valid" />
</spring:bean>
</spring:property>
</custom-transformer>