如何使用java dsl?来使用标头值路由器?我想根据标题中的值进行路由。
如果我将false
传递给我的网关,那就是给我
"没有名为' false'已定义"
@MessagingGateway
public interface RouterGateway {
@Gateway(requestChannel = "testChannel")
String route(@Payload String payload, @Header("enabled") String isEnabled);
}
@Bean
public IntegrationFlow routerFlow() {
return IntegrationFlows.from("testChannel")
.route(headerRouter())
.get();
}
@Bean
public HeaderValueRouter headerRouter() {
HeaderValueRouter router = new HeaderValueRouter("enabled");
router.setIgnoreSendFailures(true);
router.setChannelMapping("true", "helloChannel");
router.setDefaultOutputChannel(defaultOutputChannel());
return router;
}
答案 0 :(得分:3)
如果您想在频道解析失败时发送到默认频道,我需要设置router.setResolutionRequired(false);
。