1
嘿,我不能得到與Java的dsl工作的子流部分。如何在Java 7中啓動Spring集成Java dsl子流?
public IntegrationFlow flow() {
return IntegrationFlows
.from("messageRoutingChannel")
.route("headers." + HeaderKeys.CONNECTION_ID, new Consumer<RouterSpec<ExpressionEvaluatingRouter>>() {
@Override
public void accept(RouterSpec<ExpressionEvaluatingRouter> spec) {
spec.subFlowMapping("connection101",
IntegrationFlows.from("messageRoutingChannel")
.handle(new GenericHandler<String>() {
@Override
public Object handle(String payload, Map<String, Object> arg1) {
System.out.println(payload + " after routing");
return null;
}
})
.get());
}
})
.get();
}
現在,當我的IntegrationFlow添加到子流我得給它一個from()
吧?我真的不知道該給那裏什麼。我試着在route()
之上放置一個channel()
,然後從該頻道執行from()
,但那也不起作用。參考中的大多數示例都使用lambda表達式,因此在那裏沒有明確的IntegrationFlows.from()
。只是一個sf -> sf.handle()
java @Bean public IntegrationFlow routeFlow() { return f -> f .<Integer, Boolean>route(p -> p % 2 == 0, m -> m.channelMapping("true", "evenChannel") .subFlowMapping("false", sf -> sf.<Integer>handle((p, h) -> p * 3))) .transform(Object::toString) .channel(c -> c.queue("oddChannel")); }
什麼從隱式評估到雖然?我怎樣才能在Java 7中工作?感謝幫助。
呀它看起來醜陋的我猜,但當時我只是要去堅持在子作兩種出站適配器,以便業務邏輯不臃腫起來了。我可以將它們分成不同的bean,但它們沒有任何重用的潛力。如果我只有一臺路由器,流量本身就毫無意義。也可以讓路由器成爲一個bean並跳過dsl。我只是把它分離出來,並很快在這裏希望他們沒事的Java 8。謝謝! – alokraop