我正在从头学习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} }
那么我怎么做错了呢?谢谢。
答案 0 :(得分:1)
只是Intellij IDEA不知道@EnableBinding(Source.class)
在运行时将成为bean。 bean定义就是这样,因此工具无法确定在该@Autowired
中注入什么。
否则,您的代码就非常好,您只需要运行它并使用您希望从该代码中得到的任何内容即可。
答案 1 :(得分:0)
这只是一个IDE错误警报。 您可以通过添加
在IDE中消除此错误@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")