无法注册在类路径资源中定义的bean defaultKafkaStreamsConfig

时间:2020-07-03 21:42:39

标签: apache-kafka spring-kafka

@Configuration
@EnableKafkaStreams
public class KafkaStreamConfig {
    
    @Bean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_CONFIG_BEAN_NAME)
    public KafkaStreamsConfiguration kafkastreamconfig() {
        
         HashMap<String, Object> props = new HashMap<String, Object>();
        
         props.put(StreamsConfig.APPLICATION_ID_CONFIG, "kafka-stream1");
         props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
         props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());
         props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());
         
         return new KafkaStreamsConfiguration(props);
        
    }

}

应用程序在加载时抛出以下异常

The bean 'defaultKafkaStreamsConfig', defined in class path resource
[org/springframework/boot/autoconfigure/kafka/KafkaStreamsAnnotationDrivenConfiguration.class]
could not be registered.

A bean with that name has already been defined in class path resource
[com/kafka/kafkastreams/config/KafkaStreamConfig.class]
and overriding is disabled.

操作:
考虑重命名其中一个Bean或通过设置启用覆盖 spring.main.allow-bean-definition-overriding=true

任何帮助都会很棒

1 个答案:

答案 0 :(得分:0)

将Java版本从版本8升级到版本12。

注释:@ConditionalOnMissingBean和@AutoConfigureBefore不起作用。

相关问题