Этот пример приложения покажет разницу между Foreach и сплиттером в Mule версии 3.x. Разделитель коллекций разбивает входящий объект коллекции, а затем вам нужно установить агрегатор для сбора результирующих объектов. Для каждой области видимости есть область, которая не изменяет полезную нагрузку, и вы получаете один и тот же объект коллекции один раз для завершения каждого цикла.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
<?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" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsdhttp://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> |
Оставьте свои комментарии и предложения.
|
Опубликовано на Java Code Geeks с разрешения Абхишека Сомани, партнера нашей программы JCG. Смотрите оригинальную статью здесь: ForEach против Splitter в муле Мнения, высказанные участниками Java Code Geeks, являются их собственными. |