1

什么是 Spring Integration DSL 创建等价物的方式

<int:gateway service-interface="MyService" default-request-channel="myService.inputChannel"/>

// where my existing interface looks like
interface MyService { process(Foo foo); }

我无法找到工厂,org.springframework.integration.dsl并且没有任何参数列表IntegrationFlows.from(...)有助于自我发现。

感觉就像我缺少来自https://github.com/spring-projects/spring-integration-java-dsl/wiki/Spring-Integration-Java-DSL-Reference#using-protocolJava的协议适配器之类的东西-适配器

// I imagine this is what I can't find
IntegrationFlows.from(Java.gateway(MyService.class)
    .channel("myService.inputChannel")
    .get();

我遇到的唯一一件事是在一篇旧的博客文章中,但它似乎需要用@MessagingGatewayand注释界面@Gateway,我想避免这种情况。见https://spring.io/blog/2014/11/25/spring-integration-java-dsl-line-by-line-tutorial

4

1 回答 1

4

我们最近在 Spring Integration 5.0 中做到了这一点。有了它,你真的可以做到这一点:

@Bean
public IntegrationFlow controlBusFlow() {
    return IntegrationFlows.from(ControlBusGateway.class)
            .controlBus()
            .get();
}

public interface ControlBusGateway {

    void send(String command);
}

在最新的博客文章中查看更多信息。

现在您别无选择,除非@MessagingGateway在接口上声明并从该网关定义的请求通道启动流程。

于 2017-08-03T15:13:08.757 回答