龙目岛 + 杰克逊不可变
2022-09-03 08:07:01
将我的项目更新到Spring Boot 1.5.10后,龙目岛停止与杰克逊一起正常工作。我的意思是不可变的DTO创建,当我的对象中的字段名称与json请求中的字段不同时:
@Value
@Builder
public class MyImmutableDto implements Serializable {
@JsonProperty("other-field-1-name")
private final BigDecimal myField1;
@JsonProperty("other-field-2-name")
private final String myField2;
and a lot of fields there...
}
因此,在将Spring Boot更新到1.5.10之后,此代码不起作用,我需要像这样配置龙目岛:
lombok.anyConstructor.addConstructorProperties = true
有谁知道任何其他方法可以用杰克逊+龙目岛创建这样的对象,而没有这个龙目岛修复?代替此修复程序,我可以使用以下代码:和:@JsonPOJOBuilder
@JsonDeserialize(builder = MyDto.MyDtoBuilder.class)
@Value
@Builder
@JsonDeserialize(builder = MyDto.MyDtoBuilder.class)
public class MyDto implements Serializable {
// @JsonProperty("other-field-1-name") // not working
private final BigDecimal myField1;
private final String myField2;
private final String myField3;
and a lot of fields there...
@JsonPOJOBuilder(withPrefix = "")
public static final class MyDtoBuilder {
}
}
但它不适用于 .Ofc,它可以通过简单的来完成,但也许有一些方法可以使用一些构造函数/杰克逊注释将其与龙目岛一起使用?@JsonProperty("other-field-1-name")
@JsonCreator