Class DefaultJackson2JavaTypeMapper
- java.lang.Object
-
- org.springframework.amqp.support.converter.AbstractJavaTypeMapper
-
- org.springframework.amqp.support.converter.DefaultJackson2JavaTypeMapper
-
- All Implemented Interfaces:
ClassMapper
,Jackson2JavaTypeMapper
,Aware
,BeanClassLoaderAware
public class DefaultJackson2JavaTypeMapper extends AbstractJavaTypeMapper implements Jackson2JavaTypeMapper
Jackson 2 type mapper.- Author:
- Mark Pollack, Sam Nelson, Andreas Asplund, Artem Bilan, Gary Russell
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.springframework.amqp.support.converter.Jackson2JavaTypeMapper
Jackson2JavaTypeMapper.TypePrecedence
-
-
Field Summary
-
Fields inherited from class org.springframework.amqp.support.converter.AbstractJavaTypeMapper
DEFAULT_CLASSID_FIELD_NAME, DEFAULT_CONTENT_CLASSID_FIELD_NAME, DEFAULT_KEY_CLASSID_FIELD_NAME
-
-
Constructor Summary
Constructors Constructor Description DefaultJackson2JavaTypeMapper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTrustedPackages(String... packages)
Add trusted packages.void
fromClass(Class<?> clazz, MessageProperties properties)
void
fromJavaType(com.fasterxml.jackson.databind.JavaType javaType, MessageProperties properties)
Set the message properties according to the type.com.fasterxml.jackson.databind.JavaType
getInferredType(MessageProperties properties)
Return the inferred type, if the type precedence is inferred and the header is present.Jackson2JavaTypeMapper.TypePrecedence
getTypePrecedence()
Return the precedence.void
setTrustedPackages(String... trustedPackages)
Specify a set of packages to trust during deserialization.void
setTypePrecedence(Jackson2JavaTypeMapper.TypePrecedence typePrecedence)
Set the precedence for evaluating type information in message properties.Class<?>
toClass(MessageProperties properties)
com.fasterxml.jackson.databind.JavaType
toJavaType(MessageProperties properties)
Determine the type from the message properties.-
Methods inherited from class org.springframework.amqp.support.converter.AbstractJavaTypeMapper
addHeader, fromInferredTypeHeader, getClassIdFieldName, getClassLoader, getContentClassIdFieldName, getIdClassMapping, getKeyClassIdFieldName, hasInferredTypeHeader, retrieveHeader, retrieveHeaderAsString, setBeanClassLoader, setIdClassMapping
-
-
-
-
Method Detail
-
getTypePrecedence
public Jackson2JavaTypeMapper.TypePrecedence getTypePrecedence()
Return the precedence.- Specified by:
getTypePrecedence
in interfaceJackson2JavaTypeMapper
- Returns:
- the precedence.
- Since:
- 1.6.
- See Also:
setTypePrecedence(Jackson2JavaTypeMapper.TypePrecedence)
-
setTypePrecedence
public void setTypePrecedence(Jackson2JavaTypeMapper.TypePrecedence typePrecedence)
Set the precedence for evaluating type information in message properties. When using@RabbitListener
at the method level, the framework attempts to determine the target type for payload conversion from the method signature. If so, this type is provided in theinferredArgumentType
message property.By default, if the type is concrete (not abstract, not an interface), this will be used ahead of type information provided in the
__TypeId__
and associated headers provided by the sender.If you wish to force the use of the
__TypeId__
and associated headers (such as when the actual type is a subclass of the method argument type), set the precedence toJackson2JavaTypeMapper.TypePrecedence.TYPE_ID
.- Parameters:
typePrecedence
- the precedence.- Since:
- 1.6
-
setTrustedPackages
public void setTrustedPackages(@Nullable String... trustedPackages)
Specify a set of packages to trust during deserialization. The asterisk (*
) means trust all.- Parameters:
trustedPackages
- the trusted Java packages for deserialization- Since:
- 1.6.11
-
addTrustedPackages
public void addTrustedPackages(@Nullable String... packages)
Description copied from interface:Jackson2JavaTypeMapper
Add trusted packages.- Specified by:
addTrustedPackages
in interfaceJackson2JavaTypeMapper
- Parameters:
packages
- the packages.
-
toJavaType
public com.fasterxml.jackson.databind.JavaType toJavaType(MessageProperties properties)
Description copied from interface:Jackson2JavaTypeMapper
Determine the type from the message properties.- Specified by:
toJavaType
in interfaceJackson2JavaTypeMapper
- Parameters:
properties
- the properties.- Returns:
- the type.
-
getInferredType
@Nullable public com.fasterxml.jackson.databind.JavaType getInferredType(MessageProperties properties)
Description copied from interface:Jackson2JavaTypeMapper
Return the inferred type, if the type precedence is inferred and the header is present.- Specified by:
getInferredType
in interfaceJackson2JavaTypeMapper
- Parameters:
properties
- the message properties.- Returns:
- the type.
-
fromJavaType
public void fromJavaType(com.fasterxml.jackson.databind.JavaType javaType, MessageProperties properties)
Description copied from interface:Jackson2JavaTypeMapper
Set the message properties according to the type.- Specified by:
fromJavaType
in interfaceJackson2JavaTypeMapper
- Parameters:
javaType
- the type.properties
- the properties.
-
fromClass
public void fromClass(Class<?> clazz, MessageProperties properties)
- Specified by:
fromClass
in interfaceClassMapper
-
toClass
public Class<?> toClass(MessageProperties properties)
- Specified by:
toClass
in interfaceClassMapper
-
-