まず第一に、SI DSL は既存の SI Java および Annotation 構成の単なる拡張であるため、他の Java 構成と一緒に使用できます。もちろんXML@Import
も可能です。
DSL にはゲートウェイ構成がありません。これは、そのメソッドを linear と関連付けることができないためIntegrationFlow
です。メソッドごとにダウンストリーム フローを提供する必要があります。
したがって、@MessagingGateway
先に進む正しい方法は次のとおりです。
@MessagingGateway(name = "notificationExecutionsListener", defaultRequestChannel = "stepExecutionsChannel")
public interface MyStepExecutionListener extends StepExecutionListener {}
反対側からの@MessagingGateway
解析と<gateway>
タグの解析は、最終的にGatewayProxyFactoryBean
定義になります。したがって、新しいクラスを導入したくない場合は、その Bean を宣言するだけです。
@Bean
public GatewayProxyFactoryBean notificationExecutionsListener(MessageChannel stepExecutionsChannel) {
GatewayProxyFactoryBean gateway = new GatewayProxyFactoryBean(StepExecutionListener.class);
gateway.setDefaultRequestChannel(stepExecutionsChannel);
return gateway;
}
最新のマイルストーン 3の後、フローのサポートnested flows
を導入できる可能性があるときに導入するアイデアがあります。Gateway
このようなもの:
@Bean
public IntegrationFlow gatewayFlow() {
return IntegrationFlows
.from(MyGateway.class, g ->
g.method("save", f -> f.transform(...)
.filter(...))
.method("delete", f -> f.handle(...)))
.handle(...)
.get();
}
loosely coupling
ただし、ネストされたラムダがノイズを増やし、原則を破る可能性がある限り、それが人生を簡素化するかどうかはわかりません。