春季云流无法自动装配Source.class

时间:2018-11-27 10:27:11

标签: spring spring-boot spring-cloud spring-cloud-stream spring-kafka

我正在从头学习Spring Cloud Streams。

我试图创建这样的Source应用程序:

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'类型的bean。

我可以理解Source是我导入的接口,但是spring官方网站说“ Spring Cloud Stream为您创建了该接口的实现。您可以通过自动装配在应用程序中使用它” {{3} }

那么我怎么做错了呢?谢谢。

2 个答案:

答案 0 :(得分:1)

只是Intellij IDEA不知道@EnableBinding(Source.class)在运行时将成为bean。 bean定义就是这样,因此工具无法确定在该@Autowired中注入什么。

否则,您的代码就非常好,您只需要运行它并使用您希望从该代码中得到的任何内容即可。

答案 1 :(得分:0)

这只是一个IDE错误警报。 您可以通过添加

在IDE中消除此错误
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")