注解类型 Jacksonized


@Target({TYPE,METHOD,CONSTRUCTOR}) @Retention(SOURCE) public @interface Jacksonized
@Jacksonized 注解是为 @Builder@SuperBuilder 提供的附加注解。它自动配置生成的 builder 类,以便 Jackson 反序列化使用。仅当在同时存在 @Builder@SuperBuilder 的上下文中出现时才有效;否则会发出警告。

特别是,该注解执行以下操作

  • 配置 Jackson 使用 builder 进行反序列化,在类上使用 @JsonDeserialize(builder=Foobar.FoobarBuilder[Impl].class)(其中 Foobar 是被注解的类的名称)。
  • 将 Jackson 相关的配置注解(例如 @JsonIgnoreProperties)从类复制到 builder 类。这对于 Jackson 在使用 builder 时识别它们是必要的。
  • 在生成的 builder 类上插入 @JsonPOJOBuilder(withPrefix="") 以覆盖 Jackson 的默认前缀 "with"。如果您在 lombok 中使用 setterPrefix 配置了不同的前缀,则使用此值。如果您使用 buildMethodName 更改了 build() 方法的名称,这也将告知 Jackson。
  • 对于 @SuperBuilder,使 builder 实现类为包私有。
此注解会更改生成的 builder 的行为。@Jacksonized @SuperBuilder 仍然与常规 @SuperBuilder 完全兼容。