title: Spring Boot Kafka Streams - Binding Issue
body: <p>I am trying build out a simple streams app based on Kafka Streams using this example. </p>
  
  <p><a href="https://github.com/spring-cloud/spring-cloud-stream-samples/tree/master/kafka-streams-samples/kafka-streams-word-count" rel="nofollow noreferrer">Word Count</a></p>
  
  <p>However when I am starting the app, I get the below error: Can someone please point out on what I am missing out here? Here is the code, config &amp; error</p>
  
  <pre><code>@SpringBootApplication
  @Slf4j
  @EnableScheduling
  @EnableBinding(PersonBinding.class)
  public class DemoApplication {
  
    public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
    }
  
    @Component
    public static class PersonSource {
  
      private final MessageChannel personOut;
  
      @Autowired
      PersonSource(PersonBinding personBinding) {
  
        this.personOut = personBinding.personOut();
      }
  
      @Scheduled(fixedDelay = 5000L)
      public void run() {
  
        Message&lt;Person&gt; message = MessageBuilder
            .withPayload(new Person("John", "Doe", Instant.now()))
            .build();
  
        try {
  
          personOut.send(message);
  
          log.info("Published message: {}", message);
        } catch (Exception e) {
  
          e.printStackTrace();
          throw e;
        }
      }
    }
  
    @Component
    public static class PersonProcessor {
  
      @StreamListener
      public void process(@Input(PersonBinding.PERSON_IN) KStream&lt;String, Person&gt; events) {
  
        events.foreach(((key, value) -&gt; System.out.println("Key: " + key + "; Value: " + value)));
      }
    }
  }
  
  @Data
  @AllArgsConstructor
  class Person {
  
    String firstName;
  
    String lastName;
  
    Instant createdOn;
  }
  
  interface PersonBinding {
  
    String PERSON_IN = "pin";
  
    String PERSON_OUT = "pout";
  
    @Output(PERSON_OUT)
    MessageChannel personOut();
  
    @Input(PERSON_IN)
    KStream&lt;String, Person&gt; personIn();
  }
  </code></pre>
  
  <p>Dependency Management (Spring Boot 1.5.13.RELEASE)</p>
  
  <pre><code>&lt;dependency&gt;
      &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
      &lt;artifactId&gt;spring-cloud-starter-stream-kafka&lt;/artifactId&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
    &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
    &lt;artifactId&gt;spring-cloud-stream-binder-kstream&lt;/artifactId&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
      &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt;
      &lt;artifactId&gt;kafka-streams&lt;/artifactId&gt;
      &lt;version&gt;1.1.0&lt;/version&gt;
  &lt;/dependency&gt;
  </code></pre>
  
  <p>Configuration</p>
  
  <pre><code># Default Configuration
  spring.cloud.stream.kstream.binder.configuration.default.key.serde=org.apache.kafka.common.serialization.Serdes$StringSerde
  spring.cloud.stream.kstream.binder.configuration.default.value.serde=org.apache.kafka.common.serialization.Serdes$StringSerde
  # Out Bindings Configuration
  spring.cloud.stream.bindings.pout.destination=pout
  spring.cloud.stream.bindings.pout.producer.header-mode=raw
  # In Bindings Configuration
  spring.cloud.stream.bindings.pin.destination=pout
  spring.cloud.stream.bindings.pin.consumer.header-mode=raw
  </code></pre>
  
  <p>Error</p>
  
  <pre><code>Field configurationProperties in org.springframework.cloud.stream.binder.kafka.config.KafkaBinderConfiguration required a single bean, but 2 were found:
    - spring.cloud.stream.kafka.binder-org.springframework.cloud.stream.binder.kafka.properties.KafkaBinderConfigurationProperties: a programmatically registered singleton - binderConfigurationProperties: defined by method 'binderConfigurationProperties' in class path resource [org/springframework/cloud/stream/binder/kstream/config/KStreamBinderSupportAutoConfiguration.class]
  
  
  Action:
  
  Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed
  </code></pre>
  
  <p>** EDIT 1 **</p>
  
  <p>Uploaded code to Github
  <a href="https://github.com/tapitoe/demo-spring-cloud-streams/tree/master/src" rel="nofollow noreferrer">https://github.com/tapitoe/demo-spring-cloud-streams/tree/master/src</a></p>