各位大佬,我有個(gè)問題自己折騰好久沒解決了
public?interface?StreamClient?{ ????String?input=?"message"; ????@Input(StreamClient.input) ????SubscribableChannel?input(); ????@Output(StreamClient.input) ????MessageChannel?output(); }
以上是定義的接口
@Component @EnableBinding(StreamClient.class) @Slf4j public?class?StreamReceiver?{ ????@StreamListener(StreamClient.input) ????public?void?process(Object?message)?{ ????????log.info("StreamReceiver:?{}",?message); ????} }
以上是定義的接受消息的監(jiān)聽類
@RestController public?class?SendMessageController?{ ????@Autowired ????private?StreamClient?streamClient; ????@GetMapping("/sendMessage") ????public?void?process()?{ ????????String?message?=?"now?"?+?new?Date(); ????????streamClient.output().send(MessageBuilder.withPayload(message).build()); ????} }
這是定義的發(fā)送消息的接口
我是用的stream + rabbitmq,想做消息異步,上面這么寫的話項(xiàng)目一運(yùn)行就會(huì)報(bào)錯(cuò),如下
org.springframework.beans.factory.BeanDefinitionStoreException:?Invalid?bean?definition?with?name?'input'?defined?in?org.fish.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=org.fish.order.message.StreamClient;?factoryMethodName=output;?initMethodName=null;?destroyMethodName=null
搞了好久沒搞出來(lái),十分沮喪,求各位大佬幫幫我?。?!
2019-02-07
@Input
(StreamClient.input)和
@Output(StreamClient.input)
通道名不能一樣