gpt4 book ai didi

Spring Cloud Streams 无法 Autowiring Source.class

转载 作者:行者123 更新时间:2023-12-05 05:13:35 27 4
gpt4 key购买 nike

我正在从头开始学习 Spring Cloud Streams。

我试着创建一个像这样的源应用程序:

import org.springframework.cloud.stream.messaging.Source; //etc
@RestController
@SpringBootApplication
@CrossOrigin
@EnableBinding(Source.class)
public class StreamsProducerApplication {

@Autowired
Source source;

@GetMapping(value="/send/{message}")
public void sendMessage(@PathVariable String message){
if(message != null){

source.output().send(MessageBuilder.withPayload(message).build());}
}

public static void main(String[] args) {
SpringApplication.run(StreamsProducerApplication.class, args);
}

但是,我从 Intellij IDEA 在“Source source;”处收到错误提示说“无法 Autowiring 。找不到‘源’类型的 bean。

我可以理解 Source 是我导入的接口(interface),但是 spring 官方网站说“Spring Cloud Stream 为您创建接口(interface)的实现。您可以通过 Autowiring 在应用程序中使用它”https://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/

那么我是怎么做错的呢?谢谢。

最佳答案

只是 Intellij IDEA 不知道 @EnableBinding(Source.class) 将在运行时成为一个 bean。只有这样一个 bean 定义,所以工具无法确定要在 @Autowired 中注入(inject)什么。

否则,您的代码完全没有问题,您只需要运行它并根据您对代码的期望进行操作即可。

关于Spring Cloud Streams 无法 Autowiring Source.class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53497582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com