Annotation Type Jacksonized


@Target({TYPE,METHOD,CONSTRUCTOR}) @Retention(SOURCE) public @interface Jacksonized
The @Jacksonized annotation is an add-on annotation for @Builder and @SuperBuilder. It automatically configures the generated builder class to be used by Jackson's deserialization. It only has an effect if present at a context where there is also a @Builder or a @SuperBuilder; a warning is emitted otherwise.

In particular, the annotation does the following:

  • Configure Jackson to use the builder for deserialization using @JsonDeserialize(builder=Foobar.FoobarBuilder[Impl].class) on the class (where Foobar is the name of the annotated class).
  • Copy Jackson-related configuration annotations (like @JsonIgnoreProperties) from the class to the builder class. This is necessary so that Jackson recognizes them when using the builder.
  • Insert @JsonPOJOBuilder(withPrefix="") on the generated builder class to override Jackson's default prefix "with". If you configured a different prefix in lombok using setterPrefix, this value is used. If you changed the name of the build() method using buildMethodName, this is also made known to Jackson.
  • For @SuperBuilder, make the builder implementation class package-private.
This annotation does not change the behavior of the generated builder. A @Jacksonized @SuperBuilder remains fully compatible to regular @SuperBuilders.