如何在spring集成中使用路由器?
我在Spring集成项目中使用了如何在spring集成中使用路由器?,spring,ftp,spring-integration,Spring,Ftp,Spring Integration,我在Spring集成项目中使用了router,我想基于自定义表达式路由消息,为此我定义了一个路由器和两个路由消息通道,我的路由器代码是: <int:router input-channel="toSplitter" default-output-channel="aggregateResultsChannel" expression="@util.determine(payload)" >
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...
}
}
公共类util{
公共静态布尔值确定(列表路径){
用于(FileInfo FileInfo:path){
评估(文件信息);
}
return;//如何在此处返回。。。
}
}
问题是,我希望评估每个路径对象并将每个消息路由到不同的通道,例如列表
包含{file1,file2}
,然后在评估到mvChannel的file1路由和到chennel的file2路由后,如何进行?即使没有任何
也可以配置
。在这种情况下,route函数必须返回MessageChannel
bean名称
例如:
公共类util{
公共静态字符串确定(列表路径){
返回评估(路径)?“mvChannel”:“toGet”;
}
}
感谢回复@Artem并编辑我的帖子:),我想发送路径
列表中的每一项,例如:对于(FileInfo FileInfo:path){//how do it here}
对于集合
有效载荷
您必须在
之前使用
。每个EIP组件只负责其目标,仅此而已。要灵活,尽量遵循松耦合原则。请先读一读。
public class util {
public static String determine(List<FileInfo> path) {
return evaluate(path) ? "mvChannel" : "toGet";
}
}