Skip to content

Commit ca37f4e

Browse files
wilkinsonaphilwebb
authored andcommitted
Document Jackson 2 support
See gh-47688
1 parent 00006a6 commit ca37f4e

File tree

5 files changed

+34
-4
lines changed

5 files changed

+34
-4
lines changed

buildSrc/src/main/java/org/springframework/boot/build/antora/AntoraAsciidocAttributes.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ private void addVersionAttributes(Map<String, String> attributes, Map<String, St
165165
addDependencyVersion(attributes, "jackson-core", "tools.jackson.core:jackson-core");
166166
addDependencyVersion(attributes, "jackson-databind", "tools.jackson.core:jackson-databind");
167167
addDependencyVersion(attributes, "jackson-dataformat-xml", "tools.jackson.dataformat:jackson-dataformat-xml");
168+
addDependencyVersion(attributes, "jackson2-databind", "com.fasterxml.jackson.core:jackson-databind");
168169
addSpringDataDependencyVersion(attributes, internal, "spring-data-commons");
169170
addSpringDataDependencyVersion(attributes, internal, "spring-data-couchbase");
170171
addSpringDataDependencyVersion(attributes, internal, "spring-data-cassandra");

buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,12 @@ url-jackson-annotations-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.cor
8080
url-jackson-core-javadoc=https://javadoc.io/doc/tools.jackson.core/jackson-core/{version-jackson-core}
8181
url-jackson-databind-javadoc=https://javadoc.io/doc/tools.jackson.core/jackson-databind/{version-jackson-databind}
8282
url-jackson-dataformat-xml-javadoc=https://javadoc.io/doc/tools.jackson.dataformat/jackson-dataformat-xml/{version-jackson-dataformat-xml}
83+
url-jackson2-databind-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/{version-jackson2-databind}
8384

8485
# === Javadoc Locations ===
8586

8687
javadoc-location-com-fasterxml-jackson-annotation={url-jackson-annotations-javadoc}
88+
javadoc-location-com-fasterxml-jackson-databind={url-jackson2-databind-javadoc}
8789
javadoc-location-org-apache-pulsar-client-api={url-pulsar-client-api-javadoc}
8890
javadoc-location-org-apache-pulsar-reactive-client-api={url-pulsar-client-reactive-api-javadoc}
8991
javadoc-location-org-springframework-data-cassandra={url-spring-data-cassandra-javadoc}

buildSrc/src/test/java/org/springframework/boot/build/antora/AntoraAsciidocAttributesTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,10 @@ private Map<String, String> mockDependencyVersions(String version) {
282282
addMockTestcontainersVersion(versions, "redpanda", version);
283283
addMockTestcontainersVersion(versions, "r2dbc", version);
284284
addMockJackson2CoreVersion(versions, "jackson-annotations", version);
285+
addMockJackson2CoreVersion(versions, "jackson-databind", version);
285286
addMockJacksonCoreVersion(versions, "jackson-core", version);
286287
addMockJacksonCoreVersion(versions, "jackson-databind", version);
288+
addMockJacksonCoreVersion(versions, "jackson-databind", version);
287289
versions.put("org.apache.pulsar:pulsar-client-api", version);
288290
versions.put("org.apache.pulsar:pulsar-client-reactive-api", version);
289291
versions.put("tools.jackson.dataformat:jackson-dataformat-xml", version);

documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/features/json.adoc

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,23 @@
33

44
Spring Boot provides integration with the following JSON mapping libraries:
55

6-
- Gson
76
- Jackson 3
7+
- Jackson 2
8+
- Gson
89
- JSON-B
910
- Kotlin Serialization
1011

11-
Jackson is the preferred and default library.
12+
Jackson 3 is the preferred and default library.
13+
14+
Support for Jackson 2 is deprecated and will be removed in a future Spring Boot 4.x release.
15+
It is provided purely to ease the migration from Jackson 2 to Jackson 3 and should not be relied up in the longer term.
1216

1317

1418

1519
[[features.json.jackson]]
16-
== Jackson
20+
== Jackson 3
1721

18-
Auto-configuration for Jackson is provided and Jackson is part of `spring-boot-starter-json`.
22+
Auto-configuration for Jackson 3 is provided and Jackson is part of `spring-boot-starter-json`.
1923
When Jackson is on the classpath a javadoc:tools.jackson.databind.json.JsonMapper[] bean is automatically configured.
2024
Several configuration properties are provided for xref:how-to:spring-mvc.adoc#howto.spring-mvc.customize-jackson-jsonmapper[customizing the configuration of the javadoc:tools.jackson.databind.json.JsonMapper[]].
2125

@@ -53,6 +57,26 @@ The registration is performed by Spring Boot's javadoc:org.springframework.boot.
5357

5458

5559

60+
[[features.json.jackson2]]
61+
== Jackson 2
62+
63+
Deprecated auto-configuration for Jackson 2 is provided by the `spring-boot-jackson2` module.
64+
When this module is on the classpath a javadoc:com.fasterxml.jackson.databind.ObjectMapper[] bean is automatically configured.
65+
Several `+spring.jackson2.*+` configuration properties are provided for customizing the configuration.
66+
To take more control, define one or more javadoc:org.springframework.boot.jackson2.autoconfigure.Jackson2ObjectMapperBuilderCustomizer[] beans.
67+
68+
When both Jackson 3 and Jackson 2 are present, various configuration properties can be used to indicate that Jackson 2 is preferred:
69+
70+
- configprop:spring.graphql.rsocket.preferred-json-mapper[]
71+
- configprop:spring.http.codecs.preferred-json-mapper[] (used by Spring WebFlux and reactive HTTP clients)
72+
- configprop:spring.http.converters.preferred-json-mapper[] (used by Spring MVC and imperative HTTP clients)
73+
- configprop:spring.rsocket.preferred-mapper[]
74+
- configprop:spring.websocket.messaging.preferred-json-mapper[]
75+
76+
In each case, set the relevant property to `jackson2` to indicate that Jackson 2 is preferred.
77+
78+
79+
5680
[[features.json.gson]]
5781
== Gson
5882

module/spring-boot-websocket/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
plugins {
1818
id "java-library"
1919
id "org.springframework.boot.auto-configuration"
20+
id "org.springframework.boot.configuration-properties"
2021
id "org.springframework.boot.deployed"
2122
id "org.springframework.boot.optional-dependencies"
2223
}

0 commit comments

Comments
 (0)