我在Spring Integration项目中使用router
,我想基于自定义表达式路由消息,因此,我为路由消息定义了一个路由器和两个通道,我的路由器代码是:
<int:router input-channel="toSplitter"
default-output-channel="aggregateResultsChannel"
expression="@util.determine(payload)"
>
<int:mapping value="true" channel="mvChannel" />
<int:mapping value="false" channel="toGet" />
</int:router>
在我的豆子里:
public class util {
public static boolean determine(List<FileInfo> path) {
for(FileInfo fileInfo:path) {
evaluate(fileInfo);
}
return;//how to return here...
}
}
问题是我想评估每个路径对象并将每条消息路由到不同的渠道,例如list
包含{file1,file2}
,然后在评估file1路由到mvChannel和file2路由到获取chennel之后怎么做?
答案 0 :(得分:2)
即使没有任何<router>
,也可以配置<mapping>
。在这种情况下,route function
必须返回MessageChannel
bean名称。
例如:
public class util {
public static String determine(List<FileInfo> path) {
return evaluate(path) ? "mvChannel" : "toGet";
}
}