Cloud Stream中的@EnableBinding在后面做什么?

问题描述 投票:0回答:1

我目前正在使用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。后面发生了什么?

java spring apache-kafka spring-cloud-stream
1个回答
0
投票

之所以没得到什么,是因为在3.0.0(Hoxton)中,我们正在从基于注释的模型转向功能性,我已经做了很多事情,以尽可能多地删除对我可以从新的用户指南中找到EnableBindingStreamListener。我们的release announcement包含一些深入探讨我们动机的链接。

虽然您可以在EnableBinding中获得有关older guide的更多信息,但简而言之,它在提供的界面中标识的通道与外部绑定程序目标之间建立了桥梁(例如,Kafka主题,Rabbit队列/交换等) )。

但是正如我所说,如果您只是开始使用spring-cloud-stream,则不需要使用它们

© www.soinside.com 2019 - 2024. All rights reserved.