如何在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)" >

我在Spring集成项目中使用了
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";
    }  
}