Spring Kafka bean返回类型

时间:2019-03-22 17:43:48

标签: spring-kafka

spring kafka流支持文档显示如下内容:

@Bean
public KStream<Integer, String> kStream(StreamsBuilder kStreamBuilder) {
    KStream<Integer, String> stream = kStreamBuilder.stream("streamingTopic1");
// ... stream config
    return stream;
}

但是,我可能想要一个依赖于多个流或表的拓扑。我可以这样做吗?

@Bean
public KStream<Integer, String> kStream(StreamsBuilder kStreamBuilder) {
    KStream<Integer, String> stream1 = kStreamBuilder.stream("streamingTopic1");
    KStream<Integer, String> stream2 = kStreamBuilder.stream("streamingTopic1");
// ... stream config
    return stream;
}

换句话说,返回的bean是相关的,还是仅对kStreamBuilder进行突变才重要?

1 个答案:

答案 0 :(得分:1)

要视情况而定。

如果您不需要在其他地方引用KStream,则根本不需要将其定义为bean,您可以自动连接由工厂bean创建的StreamsBuilder

如果需要引用,则每个引用都必须是其自己的bean。

例如,Spring Cloud Stream构建一个部分流,然后由应用程序对其进行修改。 See here