各位大佬,我有個問題自己折騰好久沒解決了
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);
????}
}以上是定義的接受消息的監聽類
@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());
????}
}這是定義的發送消息的接口
我是用的stream + rabbitmq,想做消息異步,上面這么寫的話項目一運行就會報錯,如下
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
搞了好久沒搞出來,十分沮喪,求各位大佬幫幫我?。?!
2019-02-07
@Input(StreamClient.input)和@Output(StreamClient.input)通道名不能一樣