Spring Integration DSL相当于<int:gateway ... =“”>

时间:2017-08-03 12:36:14

标签: java spring spring-integration spring-integration-dsl

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-protocol-adapters中遗漏了类似Java协议适配器的东西。

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

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

1 个答案:

答案 0 :(得分:3)

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

PowerMockito.mockStatic(BadDesignedClass.class);
PowerMockito.when(BadDesignedClass.someMethod()).thenReturn("something");

在最新的blog post中查看更多信息。

现在除非在接口上声明@Bean public IntegrationFlow controlBusFlow() { return IntegrationFlows.from(ControlBusGateway.class) .controlBus() .get(); } public interface ControlBusGateway { void send(String command); } 并从该网关定义的请求通道启动流,否则您没有选择。