title: What does @EnableBinding in Cloud Stream do in the back?
body: <p>I am currently using spring cloud stream. I'm using @EnableBinding annatotation. But I don't know what this doing in the back. When I looked at Springin's official site, I didn't get much. Can you please explain to me in detail?</p>
  
  <p>I have one more question.</p>
  
  <pre><code>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);
    }
  }
  </code></pre>
  
  <p>Why does Spring need this interface?I just expected that we could just write streamlistener. What's going on in the back?</p>