Browse Source

Document Jackson 2 support

See gh-47688
pull/47694/head
Andy Wilkinson 2 months ago committed by Phillip Webb
parent
commit
ca37f4e972
  1. 1
      buildSrc/src/main/java/org/springframework/boot/build/antora/AntoraAsciidocAttributes.java
  2. 2
      buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties
  3. 2
      buildSrc/src/test/java/org/springframework/boot/build/antora/AntoraAsciidocAttributesTests.java
  4. 32
      documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/features/json.adoc
  5. 1
      module/spring-boot-websocket/build.gradle

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

@ -165,6 +165,7 @@ public class AntoraAsciidocAttributes { @@ -165,6 +165,7 @@ public class AntoraAsciidocAttributes {
addDependencyVersion(attributes, "jackson-core", "tools.jackson.core:jackson-core");
addDependencyVersion(attributes, "jackson-databind", "tools.jackson.core:jackson-databind");
addDependencyVersion(attributes, "jackson-dataformat-xml", "tools.jackson.dataformat:jackson-dataformat-xml");
addDependencyVersion(attributes, "jackson2-databind", "com.fasterxml.jackson.core:jackson-databind");
addSpringDataDependencyVersion(attributes, internal, "spring-data-commons");
addSpringDataDependencyVersion(attributes, internal, "spring-data-couchbase");
addSpringDataDependencyVersion(attributes, internal, "spring-data-cassandra");

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

@ -80,10 +80,12 @@ url-jackson-annotations-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.cor @@ -80,10 +80,12 @@ url-jackson-annotations-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.cor
url-jackson-core-javadoc=https://javadoc.io/doc/tools.jackson.core/jackson-core/{version-jackson-core}
url-jackson-databind-javadoc=https://javadoc.io/doc/tools.jackson.core/jackson-databind/{version-jackson-databind}
url-jackson-dataformat-xml-javadoc=https://javadoc.io/doc/tools.jackson.dataformat/jackson-dataformat-xml/{version-jackson-dataformat-xml}
url-jackson2-databind-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/{version-jackson2-databind}
# === Javadoc Locations ===
javadoc-location-com-fasterxml-jackson-annotation={url-jackson-annotations-javadoc}
javadoc-location-com-fasterxml-jackson-databind={url-jackson2-databind-javadoc}
javadoc-location-org-apache-pulsar-client-api={url-pulsar-client-api-javadoc}
javadoc-location-org-apache-pulsar-reactive-client-api={url-pulsar-client-reactive-api-javadoc}
javadoc-location-org-springframework-data-cassandra={url-spring-data-cassandra-javadoc}

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

@ -282,8 +282,10 @@ class AntoraAsciidocAttributesTests { @@ -282,8 +282,10 @@ class AntoraAsciidocAttributesTests {
addMockTestcontainersVersion(versions, "redpanda", version);
addMockTestcontainersVersion(versions, "r2dbc", version);
addMockJackson2CoreVersion(versions, "jackson-annotations", version);
addMockJackson2CoreVersion(versions, "jackson-databind", version);
addMockJacksonCoreVersion(versions, "jackson-core", version);
addMockJacksonCoreVersion(versions, "jackson-databind", version);
addMockJacksonCoreVersion(versions, "jackson-databind", version);
versions.put("org.apache.pulsar:pulsar-client-api", version);
versions.put("org.apache.pulsar:pulsar-client-reactive-api", version);
versions.put("tools.jackson.dataformat:jackson-dataformat-xml", version);

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

@ -3,19 +3,23 @@ @@ -3,19 +3,23 @@
Spring Boot provides integration with the following JSON mapping libraries:
- Gson
- Jackson 3
- Jackson 2
- Gson
- JSON-B
- Kotlin Serialization
Jackson is the preferred and default library.
Jackson 3 is the preferred and default library.
Support for Jackson 2 is deprecated and will be removed in a future Spring Boot 4.x release.
It is provided purely to ease the migration from Jackson 2 to Jackson 3 and should not be relied up in the longer term.
[[features.json.jackson]]
== Jackson
== Jackson 3
Auto-configuration for Jackson is provided and Jackson is part of `spring-boot-starter-json`.
Auto-configuration for Jackson 3 is provided and Jackson is part of `spring-boot-starter-json`.
When Jackson is on the classpath a javadoc:tools.jackson.databind.json.JsonMapper[] bean is automatically configured.
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[]].
@ -53,6 +57,26 @@ The registration is performed by Spring Boot's javadoc:org.springframework.boot. @@ -53,6 +57,26 @@ The registration is performed by Spring Boot's javadoc:org.springframework.boot.
[[features.json.jackson2]]
== Jackson 2
Deprecated auto-configuration for Jackson 2 is provided by the `spring-boot-jackson2` module.
When this module is on the classpath a javadoc:com.fasterxml.jackson.databind.ObjectMapper[] bean is automatically configured.
Several `+spring.jackson2.*+` configuration properties are provided for customizing the configuration.
To take more control, define one or more javadoc:org.springframework.boot.jackson2.autoconfigure.Jackson2ObjectMapperBuilderCustomizer[] beans.
When both Jackson 3 and Jackson 2 are present, various configuration properties can be used to indicate that Jackson 2 is preferred:
- configprop:spring.graphql.rsocket.preferred-json-mapper[]
- configprop:spring.http.codecs.preferred-json-mapper[] (used by Spring WebFlux and reactive HTTP clients)
- configprop:spring.http.converters.preferred-json-mapper[] (used by Spring MVC and imperative HTTP clients)
- configprop:spring.rsocket.preferred-mapper[]
- configprop:spring.websocket.messaging.preferred-json-mapper[]
In each case, set the relevant property to `jackson2` to indicate that Jackson 2 is preferred.
[[features.json.gson]]
== Gson

1
module/spring-boot-websocket/build.gradle

@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
plugins {
id "java-library"
id "org.springframework.boot.auto-configuration"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
id "org.springframework.boot.optional-dependencies"
}

Loading…
Cancel
Save