0

我有几个流程,mule-config.xml但有些豆子只能说一个流程。有没有办法定义一个流本地的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="..." />
        </spring:bean>
    </spring:property>
</custom-transformer>

但是spring bean需要在单个流程中的 2 个地方使用内联?我仍然可以在一个地方定义它并在两个地方引用它而不使其成为全局bean吗?

谢谢

4

2 回答 2

1

将单个流所需的所有 spring bean 收集到一个单独的 spring 配置文件中,该文件仅由该流导入如何?

您的 mule 配置将如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:jms="http://www.mulesoft.org/schema/mule/jms" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
    http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
    http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
    http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd ">
    <spring:import resource="encapsulated-beans.xml" />

    <flow name="flow" >
        ...
    </flow>


</mule>

其中encapsulated-beans.xml将是包含例如您的com.xxx.services.xx.Soap11Fault bean 的配置文件

于 2013-01-23T20:40:13.707 回答
1

正如@David 所说,不可能声明特定于单个流的 bean。声明的 bean 将可用于所有流。

于 2013-01-24T02:03:44.363 回答