@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
任何帮助都会很棒
答案 0 :(得分:0)
将Java版本从版本8升级到版本12。
注释:@ConditionalOnMissingBean和@AutoConfigureBefore不起作用。