如何在Spring集成中使用路由器?

时间:2015-04-22 12:24:44

标签: spring ftp spring-integration

我在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之后怎么做?

1 个答案:

答案 0 :(得分:2)

即使没有任何<router>,也可以配置<mapping>。在这种情况下,route function必须返回MessageChannel bean名称。

例如:

public class util {
    public static String determine(List<FileInfo> path) {
        return evaluate(path) ? "mvChannel" : "toGet";
    }  
}