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
答案 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);
}
并从该网关定义的请求通道启动流,否则您没有选择。