title: how to configure two instances of Kafka StreamsBuilderFactoryBean in spring boot
body: <p>Using spring-boot-2.1.3, spring-kafka-2.2.4, I want to have two streams configurations (e.g. to have different application.id, or connect to different cluster, etc).  So I defined the first stream configuration pretty much according to the docs, then added a second one, with a different name, and a second StreamsBuilderFactoryBean (also with a different name):</p>
  
  <pre><code>@Bean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_CONFIG_BEAN_NAME)
  public KafkaStreamsConfiguration kStreamsConfigs() {
      Map&lt;String, Object&gt; props = new HashMap&lt;&gt;();
      props.put(StreamsConfig.APPLICATION_ID_CONFIG, "myappId1000");
      props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
      //...
      return new KafkaStreamsConfiguration(props);
  }
  
  @Bean(name = "myKappConfig")
  public KafkaStreamsConfiguration myKafkaAppIdConfiguration() {
      Map&lt;String, Object&gt; props = new HashMap&lt;&gt;();
      props.put(StreamsConfig.APPLICATION_ID_CONFIG, "myappId9999");
      props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
      //...
      return new KafkaStreamsConfiguration(props);
  }
  
  @Bean(name = "myKappConfigStreamBuilder")
  public StreamsBuilderFactoryBean myAppStreamBuilder(
          @Qualifier("myKappConfig") KafkaStreamsConfiguration myKafkaAppIdConfiguration) {
      return new StreamsBuilderFactoryBean(myKafkaAppIdConfiguration);
  }
  </code></pre>
  
  <p>However, when I try to run the app, I get:</p>
  
  <blockquote>
    <p>Parameter 0 of method kafkaStreamsFactoryBeanConfigurer in
    org.springframework.boot.autoconfigure.kafka.KafkaStreamsAnnotationDrivenConfiguration
    required a single bean, but 2 were found:
      - &amp;defaultKafkaStreamsBuilder: defined by method 'defaultKafkaStreamsBuilder' in class path resource
    [org/springframework/kafka/annotation/KafkaStreamsDefaultConfiguration.class]
      - &amp;myKappConfigStreamBuilder: defined by method 'myAppStreamBuilder' in class path resource
    [com/teramedica/kafakaex001web/KafkaConfig.class]</p>
  </blockquote>
  
  <p>because the code in the spring-boot autoconfigure does:</p>
  
  <pre><code>@Bean
  public KafkaStreamsFactoryBeanConfigurer kafkaStreamsFactoryBeanConfigurer(
          StreamsBuilderFactoryBean factoryBean) {
      return new KafkaStreamsFactoryBeanConfigurer(this.properties, factoryBean);
  }
  </code></pre>
  
  <p>Short of replacing the KafkaStreamsAnnotationDrivenConfiguration entirely, how do I define more than one StreamsBuilderFactoryBean. Or alternately, how can I change the properties for a given stream?</p>