Browse Source

Complete set of constructors with consistent javadoc

Closes gh-31234
pull/31244/head
Juergen Hoeller 1 year ago
parent
commit
aa1360b154
  1. 12
      spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java
  2. 47
      spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java

12
spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java

@ -89,6 +89,9 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B @@ -89,6 +89,9 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B
private ClassLoader beanClassLoader;
/**
* Construct a {@code MappingJackson2MessageConverter} with a default {@link ObjectMapper}.
*/
@SuppressWarnings("deprecation") // on Jackson 2.13: configure(MapperFeature, boolean)
public MappingJackson2MessageConverter() {
this.objectMapper = new ObjectMapper();
@ -96,13 +99,20 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B @@ -96,13 +99,20 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B
this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
/**
* Construct a {@code MappingJackson2MessageConverter} with a custom {@link ObjectMapper}.
* @param objectMapper the ObjectMapper to use
* @since 6.1
*/
public MappingJackson2MessageConverter(ObjectMapper objectMapper) {
Assert.notNull(objectMapper, "ObjectMapper must not be null");
this.objectMapper = objectMapper;
}
/**
* Specify the {@link ObjectMapper} to use instead of using the default.
* Set the {@code ObjectMapper} for this converter.
* If not set, a default {@link ObjectMapper#ObjectMapper() ObjectMapper} is used.
*/
public void setObjectMapper(ObjectMapper objectMapper) {
Assert.notNull(objectMapper, "ObjectMapper must not be null");

47
spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java

@ -59,6 +59,9 @@ import org.springframework.util.MimeType; @@ -59,6 +59,9 @@ import org.springframework.util.MimeType;
*/
public class MappingJackson2MessageConverter extends AbstractMessageConverter {
private static final MimeType[] DEFAULT_MIME_TYPES = new MimeType[] {
new MimeType("application", "json"), new MimeType("application", "*+json")};
private ObjectMapper objectMapper;
@Nullable
@ -66,41 +69,51 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { @@ -66,41 +69,51 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter {
/**
* Construct a {@code MappingJackson2MessageConverter} supporting
* the {@code application/json} MIME type with {@code UTF-8} character set.
* Construct a {@code MappingJackson2MessageConverter} with a default {@link ObjectMapper},
* supporting the {@code application/json} MIME type with {@code UTF-8} character set.
*/
public MappingJackson2MessageConverter() {
super(new MimeType("application", "json"), new MimeType("application", "*+json"));
this.objectMapper = initObjectMapper();
this(DEFAULT_MIME_TYPES);
}
/**
* Construct a {@code MappingJackson2MessageConverter} supporting
* one or more custom MIME types.
* Construct a {@code MappingJackson2MessageConverter} with a default {@link ObjectMapper},
* supporting one or more custom MIME types.
* @param supportedMimeTypes the supported MIME types
* @since 4.1.5
*/
@SuppressWarnings("deprecation") // on Jackson 2.13: configure(MapperFeature, boolean)
public MappingJackson2MessageConverter(MimeType... supportedMimeTypes) {
super(supportedMimeTypes);
this.objectMapper = initObjectMapper();
this.objectMapper = new ObjectMapper();
this.objectMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
/**
* Construct a {@code MappingJackson2MessageConverter} with a custom {@link ObjectMapper},
* supporting the {@code application/json} MIME type with {@code UTF-8} character set.
* @param objectMapper the ObjectMapper to use
* @since 6.1
*/
public MappingJackson2MessageConverter(ObjectMapper objectMapper) {
super(new MimeType("application", "json"), new MimeType("application", "*+json"));
this(objectMapper, DEFAULT_MIME_TYPES);
}
/**
* Construct a {@code MappingJackson2MessageConverter} with a custom {@link ObjectMapper},
* supporting one or more custom MIME types.
* @param objectMapper the ObjectMapper to use
* @param supportedMimeTypes the supported MIME types
* @since 6.1
*/
public MappingJackson2MessageConverter(ObjectMapper objectMapper, MimeType... supportedMimeTypes) {
super(supportedMimeTypes);
Assert.notNull(objectMapper, "ObjectMapper must not be null");
this.objectMapper = objectMapper;
}
@SuppressWarnings("deprecation") // on Jackson 2.13: configure(MapperFeature, boolean)
private ObjectMapper initObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return objectMapper;
}
/**
* Set the {@code ObjectMapper} for this converter.
* If not set, a default {@link ObjectMapper#ObjectMapper() ObjectMapper} is used.

Loading…
Cancel
Save