Spring Kafka bean return 类型
Spring Kafka bean return types
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 发生变化才重要?
视情况而定。
如果您不需要在其他地方引用 KStream
,则根本不需要将其定义为 bean,您可以自动连接由工厂创建的 StreamsBuilder
豆.
如果需要引用,那么每个都必须是自己的 bean。
例如,Spring Cloud Stream 构建一个部分流,然后应用程序对其进行修改。 See here.
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 发生变化才重要?
视情况而定。
如果您不需要在其他地方引用 KStream
,则根本不需要将其定义为 bean,您可以自动连接由工厂创建的 StreamsBuilder
豆.
如果需要引用,那么每个都必须是自己的 bean。
例如,Spring Cloud Stream 构建一个部分流,然后应用程序对其进行修改。 See here.