diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java index 2e6dd16b73..11ba5cdf34 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java @@ -62,7 +62,7 @@ public abstract class Jackson2CodecSupport { new MimeType("application", "*+json", StandardCharsets.UTF_8)); - protected final ObjectMapper objectMapper; + private final ObjectMapper objectMapper; private final List mimeTypes; @@ -77,6 +77,10 @@ public abstract class Jackson2CodecSupport { } + protected ObjectMapper objectMapper() { + return this.objectMapper; + } + protected boolean supportsMimeType(@Nullable MimeType mimeType) { return (mimeType == null || this.mimeTypes.stream().anyMatch(m -> m.isCompatibleWith(mimeType))); } diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonDecoder.java b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonDecoder.java index f794f439dc..afb09e3c14 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonDecoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonDecoder.java @@ -70,10 +70,10 @@ public class Jackson2JsonDecoder extends Jackson2CodecSupport implements HttpMes @Override public boolean canDecode(ResolvableType elementType, @Nullable MimeType mimeType) { - JavaType javaType = this.objectMapper.getTypeFactory().constructType(elementType.getType()); + JavaType javaType = objectMapper().getTypeFactory().constructType(elementType.getType()); // Skip String: CharSequenceDecoder + "*/*" comes after return (!CharSequence.class.isAssignableFrom(elementType.resolve(Object.class)) && - this.objectMapper.canDeserialize(javaType) && supportsMimeType(mimeType)); + objectMapper().canDeserialize(javaType) && supportsMimeType(mimeType)); } @@ -107,8 +107,8 @@ public class Jackson2JsonDecoder extends Jackson2CodecSupport implements HttpMes Class jsonView = (hints != null ? (Class) hints.get(Jackson2CodecSupport.JSON_VIEW_HINT) : null); ObjectReader reader = (jsonView != null ? - this.objectMapper.readerWithView(jsonView).forType(javaType) : - this.objectMapper.readerFor(javaType)); + objectMapper().readerWithView(jsonView).forType(javaType) : + objectMapper().readerFor(javaType)); return objectDecoder.decode(inputStream, elementType, mimeType, hints) .flatMap(dataBuffer -> { diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonEncoder.java b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonEncoder.java index 418c00909f..d2fa9067bc 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonEncoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonEncoder.java @@ -109,7 +109,7 @@ public class Jackson2JsonEncoder extends Jackson2CodecSupport implements HttpMes Class clazz = elementType.resolve(Object.class); return (Object.class == clazz) || !String.class.isAssignableFrom(elementType.resolve(clazz)) && - this.objectMapper.canSerialize(clazz) && supportsMimeType(mimeType); + objectMapper().canSerialize(clazz) && supportsMimeType(mimeType); } @Override @@ -144,7 +144,7 @@ public class Jackson2JsonEncoder extends Jackson2CodecSupport implements HttpMes JavaType javaType = getJavaType(elementType.getType(), null); Class jsonView = (hints != null ? (Class) hints.get(Jackson2CodecSupport.JSON_VIEW_HINT) : null); ObjectWriter writer = (jsonView != null ? - this.objectMapper.writerWithView(jsonView) : this.objectMapper.writer()); + objectMapper().writerWithView(jsonView) : objectMapper().writer()); if (javaType.isContainerType()) { writer = writer.forType(javaType);