为了账号安全,请及时绑定邮箱和手机立即绑定

spring boot-spring cloud stream Input和outPut同名启动报错

/ 猿问

spring boot-spring cloud stream Input和outPut同名启动报错

看的是廖师兄的课程,里面说到配置StreamClient的时候,取得同名,服务启动报错

public interface StreamClient {
   String INPUT = "myMessage";

   @Input(StreamClient.INPUT)
   SubscribableChannel myInput();

   @Output(StreamClient.INPUT)
   MessageChannel myOutput();
}

springboot:2.0.0.RELEASE

springcloud:Finchley.SR2


报错信息

org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'myMessage' defined in com.littlehao.order.message.StreamClient: bean definition with this name already exists - Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=com.littlehao.order.message.StreamClient; factoryMethodName=myOutput; initMethodName=null; destroyMethodName=null

https://img.mukewang.com/5c10dbcc0001954317970071.jpg

查看完整描述

2 回答

?
qq_夜乡晟_0

1.首先我是定义两个名称的

@Component
public interface StreamClient {

    String INPUT="input";
    String OUTPUT="output";

    @Input(StreamClient.INPUT)
    SubscribableChannel input();


    @Output(StreamClient.OUTPUT)
    MessageChannel output();
}

2.然后在yml文件中添加

spring:
    stream:
      bindings:
        input:    #对应StreamClient.INPUT名称
          destination: myMessage  #指向myMessage队列
        output:   #对应StreamClient.OUTPUT名称
          destination: myMessage  #指向myMessage队列

重新启动就ok了

查看完整回答
1 反对 回复 2019-08-27
?
麻了一一一

我也遇到同样的问题了,困扰好久解决不了,请问您这解决了吗?

查看完整回答
1 反对 回复 2019-01-04

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信