0

我需要在我的骡流中的两个地方使用春豆。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" />

是否可以?

谢谢

4

1 回答 1

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>
于 2013-01-23T16:48:40.190 回答