在带有 Lombok 的 Spring boot 应用程序中,我有 pojo 类
AccountDTO
@Data
@Builder
@Accessors(fluent = true)
public class AccountDTO implements Serializable {
private String identification;
}
我的项目编译得很好。然而,它在执行时抛出异常
com.fasterxml.jackson.databind.exc.InvalidDefinitionException:否 找到类 AccountDTO 的序列化程序,并且没有发现要创建的属性 BeanSerializer
如果我删除了注释
@Accessors(fluent = true)
,那么它就可以正常工作,没有任何问题。
如何让
Lombok
@Accessors(fluent = true)
和 Jackson
一起工作?
我最近在遇到同样的问题时偶然发现了这个问题,我的解决方案是使用以下方法在 Lombok 生成的 getter 上添加显式
@JsonProperty
注释:
@Getter(onMethod = @__(@JsonProperty))
。
在您的情况下,课程将如下所示:
@Data
@Builder
@Accessors(fluent = true)
@Getter(onMethod = @__(@JsonProperty))
public class AccountDTO implements Serializable {
private String identification;
}
@Getter(onMethod_ = @JsonGetter)
或
@Getter(onMethod_ = @JsonProperty)