在我的Spring Cloud Kafka Streams应用程序中,我想加入一个 KTable<String, Foo>
到 KTable<String, Bar>
. 我的应用程序的输入已经使用MessagePack进行编码,所以我已经为 Foo
和 Bar
使用下面的代码。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Foo {
String a;
String b;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Bar {
String c;
String d;
}
// ObjectMapper mapper = new ObjectMapper(new MessagePackFactory());
@Bean
public Serde<Foo> fooSerde() {
return new JsonSerde<Foo>(Foo.class, mapper);
}
@Bean
public Serde<Bar> barSerde() {
return new JsonSerde<Bar>(Bar.class, mapper);
}
我的问题是,要指定加入后的KTable的值类型,我现在是否必须定义。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FooBar {
String a;
String b;
String c;
String d;
}
@Bean
public Serde<FooBar> fooBarSerde() {
return new JsonSerde<FooBar>(FooBar.class, mapper);
}
这似乎是一个相当多的模板?尤其是当 Foo
和 Bar
有很多字段。我有什么办法可以缩短我的代码吗?
我是一个Kafka新手。
到目前为止,我所看到的是有一个FooBar类,它有一个Foo和Bar的实例,所以你不需要接触 "加入 "的类。比如说
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FooBar {
Foo foo;
Bar bar;
}