split foreach
此示例应用程序将显示Mule版本3.x中的Foreach和splitter之间的区别。 集合拆分器拆分传入的集合对象,然后必须放置一个聚合器来收集生成的对象。 对于每个范围,一个范围不会更改有效负载,并且每个循环完成后,您将获得相同的集合对象。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:http="http://www.mulesoft.org/schema/mule/http" 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"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.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
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="foreachtestFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/test" allowedMethods="GET" doc:name="HTTP"/>
<component class="foreachexample.CollectionPayloadComponent" doc:name="Java"/>
<!-- <foreach doc:name="For Each">
<choice doc:name="Choice">
<when expression="#[payload == 'foreach']">
<set-session-variable value="foreachVar" variableName="test" doc:name="Session Variable"></set-session-variable>
</when>
<otherwise>
<set-session-variable value="BBQVar" variableName="test" doc:name="Session Variable"></set-session-variable>
</otherwise>
</choice>
<flow-ref name="flow3" doc:name="Flow Reference"/>
</foreach> -->
<collection-splitter />
<logger message="payload is : #[payload]" level="ERROR"/>
<choice>
<when expression="#[payload == 'foreach']">
<set-session-variable value="foreachVar" variableName="test"></set-session-variable>
</when>
<otherwise>
<set-session-variable value="BBQVar" variableName="test"></set-session-variable>
</otherwise>
</choice>
<flow-ref name="flow3" />
<set-payload value="dsadasd"/>
</flow>
<flow name="flow2">
<vm:inbound-endpoint path="foreach" doc:name="VM"/>
<logger message=" session var value is #[sessionVars.test] and payload is #[payload]" level="ERROR" doc:name="Logger"/>
</flow>
<flow name="flow3">
<vm:outbound-endpoint path="foreach" doc:name="VM"/>
</flow>
</mule>
发表您的意见和建议。
翻译自: https://www.javacodegeeks.com/2019/12/foreach-vs-splitter-in-mule.html
split foreach