Custom StreamsBuilderFactoryBeanConfigurer Bean未被执行问题求助
问题排查与解决
1. 修复代码语法错误
你的lambda表达式存在语法问题:{ factoryBean - 应该改为 { factoryBean ->,缺少了>符号。这个错误会导致Bean无法正常创建,自然不会触发断点。修正后的代码:
@Bean fun myStreamsBuilderFactoryBeanConfigurer() = StreamsBuilderFactoryBeanConfigurer { factoryBean -> factoryBean.setKafkaStreamsCustomizer { } // 若仅获取配置无修改操作,建议移除该语句避免无意义执行 factoryBean.streamsConfiguration }
2. 确保配置类被Spring扫描
你的配置类必须添加@Configuration注解,且该类所在包需处于Spring组件扫描范围内(例如与启动类同级或其子包)。
3. 确认Kafka Streams上下文已初始化
StreamsBuilderFactoryBeanConfigurer仅在Spring创建StreamsBuilderFactoryBean实例时才会被调用,而该实例的创建依赖于Kafka Streams相关业务Bean的存在:
- 若使用函数式模型,需定义
Supplier<KStream<*, *>>这类处理器Bean; - 若使用注解模型,需添加
@EnableKafkaStreams注解,并定义对应的KStream Bean。
4. 检查依赖与版本兼容性
Spring Cloud 2021.0.5(代号Jubilee)对应的Spring Cloud Stream Kafka Streams版本为3.1.x,需确保spring-cloud-stream-binder-kafka-streams依赖版本与Spring Cloud版本匹配,避免因版本不兼容导致自动配置失效。
内容的提问来源于stack exchange,提问作者Andras Hatvani
相关产品推荐
相关产品推荐

