SpringBoot:如何将snake案例转换为camelCase



我在一个项目中,我们通过Spring Cloud Stream将SpringBoot与Java(1.8 LTS(和Kafka一起使用。我通过云流获得一个事件,并将其保存到mongoDB。

我的StreamListener看起来像这样:

@StreamListener(MessagingChannels.BLA_CHANNEL)
public void onIncomingEvent(
EventContent eventContent,
@Header(name = uuid) UUID messageId
) {
doStuffWith(eventContent);
}

EventContent看起来像这样:

@ToString
@AllArgsConstructor
@Getter
@JsonNaming
public class EventContent {
private final String dataString1;
private final String dataString2;
...
private final Object details;
}

我的问题是,details对象可能会有所不同,生产者可能会有其他键/值对。一些生产商在snake_case中发送数据,但我希望在camelCase中保持一致。所以@JsonNaming做了这个安静的好事,但遗憾的是,对于details对象不能传递。

这里的容错性很重要,所以如果这里出现故障,应该将其发送到DLQ。

有人知道我是怎么做的吗?也许有一种简单的方法可以使用一个春季魔法注释,我不知道-春季新手:(

非常感谢!!

您应该配置两个不同的objectMapper:一个用于KafkaobjectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE(另一个适用于没有此选项的MongoDB。

相关内容

  • 没有找到相关文章

最新更新