Annotation Type Jacksonized
The
@Jacksonized annotation is an add-on annotation for
@Builder, @SuperBuilder, and
@Accessors.
For @Accessors(fluent = true) on a type, it automatically
configures Jackson to use the generated setters and getters for
(de-)serialization by inserting @
annotations.
(Note that invalid reference
JsonProperty@Jacksonized @Accessors on fields are not supported.)
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 for @(Super)Builder:
- 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 usingsetterPrefix, this value is used. If you changed the name of thebuild()method usingbuildMethodName, this is also made known to Jackson. - For
@SuperBuilder, make the builder implementation class package-private.
@Jacksonized @SuperBuilder remains fully
compatible to regular @SuperBuilders.