Spring Integration Java DSL:如何使用channelMapping方法路由到标题中包含标题的通道?

时间:2018-11-12 05:59:51

标签: spring-integration spring-integration-dsl

如何使用channelMapping方法路由到标题中包含标题的通道?所以如果我尝试这个

    @Bean
    private IntegrationFlow postDataToChannelX() {
            return f -> f
            ...
               .<String, Boolean> route(s -> s.equals("[]"), m -> m
                    .channelMapping(false, "headers['channelName']")
                    .channleMapping(true, ...);
    }

  

由以下原因引起:org.springframework.messaging.core.DestinationResolutionException:无法在BeanFactory中查找名称为“ headers ['channelName']”的MessageChannel。嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为'headers ['channelName']'的bean

1 个答案:

答案 0 :(得分:2)

您可以这样做:

.route(Message.class, (m) -> m.getHeaders().get("channelName"))

因此,由于您直接在路由功能中解析为目标频道,因此根本不需要任何映射。