![](/img/trans.png)
[英]Add generated Apache Avro source with build-helper-maven-plugin
[英]Is it possible to make POJOs generated with the Avro Maven plugin play nice with Jackson?
我在使用 Avro 時遇到的問題是我們需要為我們的數據 model 使用標題大小寫名稱,但對於我們的數據結構(例如 DTO)的 rest 使用駝峰名稱。 這是一個例子:
{
"name": "UserRecord",
"type": "record",
"fields": [
{
"name": "Username",
"type": "string"
}
]
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CreateUserRequestDTO {
private UserRecord userRecord;
}
Maven Avro 插件將生成如下Username
段:
private String Username;
所以我們在我們的字段代碼中有一個丑陋的組合,在某些情況下是標題大小寫,而在其他情況下是駝峰式大小寫。 有沒有一種好方法可以讓 Jackson 的ObjectMapper
能夠讀取這兩個屬性名稱約定?
大小寫混合導致 Spring Boot 的 ObjectMapper 無法識別標題大小寫的 Avro 字段,它們的所有字段都是 null。
我不知道它是否真的適用於您的用例,但也許您可以啟用Jackson 的映射器配置屬性ACCEPT_CASE_INSENSITIVE_PROPERTIES
:
如果啟用,bean 屬性將使用它們的小寫等價物進行匹配,這意味着任何大小寫組合(傳入和匹配名稱由小寫規范化)都應該有效。
您可以在配置鍵spring.jackson.mapper.*
下自定義application
配置文件中的值,例如:
spring:
jackson:
mapper:
ACCEPT_CASE_INSENSITIVE_PROPERTIES: true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.