我目前正在使用Spring Cloud Stream。我正在使用@EnableBinding annatotation。但是我不知道这在后面做什么。当我查看Springin的官方网站时,并没有太多收获。您能详细给我解释一下吗?
我还有一个问题。
public interface Sink {
String INPUT = "input";
@Input(Sink.INPUT)
SubscribableChannel input();
}
@SpringBootApplication
@EnableBinding(Sink.class)
public class VoteRecordingSinkApplication {
public static void main(String[] args) {
SpringApplication.run(VoteRecordingSinkApplication.class, args);
}
@StreamListener(Sink.INPUT)
public void processVote(Vote vote) {
votingService.recordVote(vote);
}
}
Spring为什么需要此接口?我只是希望我们可以编写streamlistener。后面发生了什么事?
答案 0 :(得分:0)
之所以没得到什么,是因为在3.0.0(Hoxton)中,我们正在从基于注释的模型转向功能性,我已经做了很多事情,可以删除尽可能多的引用就像我从新版用户指南中一样访问EnableBinding
和StreamListener
。我们的release announcement包含几个链接,这些链接可以更深入地了解我们的动机。
虽然您可以在older guide中获得有关EnableBinding
的更多信息,但简而言之,它在提供的界面中标识的通道与外部绑定程序目标之间建立了桥梁(例如,Kafka主题,Rabbit)队列/交换等)。
但是正如我所说,如果您只是开始使用spring-cloud-stream,则不需要使用它们