春季云流:“处理器”中已存在“接收器”中定义的Bean“输入”

时间:2019-07-15 11:29:16

标签: spring-cloud spring-cloud-stream

处理器是扩展接收器和源的接口。 接收器创建一个名为“输入”的通道

在我的应用程序中,我有: 1.具有@EnableBinding(Source.class)的类,可创建“输出”通道。 2.具有@EnableBinding(Processor.class)的类,其类具有用@Transformer(inputChannel = Processor.INPUT, outputChannel = "myOutputChannel")注释的方法 3.具有'@EnableBinding(Sink.class)'的类,该类的方法带有@ServiceActivator(inputChannel = "myOutputChannel")

注释

显然我没有两次绑定“输入”,但是当我运行该应用程序时,出现此错误:

Invalid bean definition with name 'input' defined in org.springframework.cloud.stream.messaging.Sink: bean definition with this name already exists - org.springframework.cloud.stream.messaging.Processor;

为什么会这样?我做错了什么?

我放下一个应用程序,该应用程序包含三个组件应用程序:源,接收器和处理器。源类绑定到@EnableBinding(Source.class),接收器类绑定到@EnableBinding(Sink.class),处理器类绑定到@EnableBinding(Processor.class)。当我更新应用程序以使用新的Spring Boot和云依赖关系(Spring Boot 2.1.5和Cloud版本为Greenwich.SR1)时,我开始在上面看到此错误。我将Sink.class和Source.class更新为Processor.class,以确保仅创建一次inputoutput bean,并使它们工作。

0 个答案:

没有答案