Class DefaultJacksonJavaTypeMapper
java.lang.Object
org.springframework.amqp.support.converter.DefaultJacksonJavaTypeMapper
- All Implemented Interfaces:
ClassMapper,JacksonJavaTypeMapper,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanClassLoaderAware
public class DefaultJacksonJavaTypeMapper
extends Object
implements JacksonJavaTypeMapper, org.springframework.beans.factory.BeanClassLoaderAware
Jackson 3 type mapper.
- Since:
- 4.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.amqp.support.converter.JacksonJavaTypeMapper
JacksonJavaTypeMapper.TypePrecedence -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddHeader(MessageProperties properties, String headerName, Class<?> clazz) voidaddTrustedPackages(String @Nullable ... packages) Add trusted packages.voidfromClass(Class<?> clazz, MessageProperties properties) protected tools.jackson.databind.JavaTypefromInferredTypeHeader(MessageProperties properties) voidfromJavaType(tools.jackson.databind.JavaType javaType, MessageProperties properties) Set the message properties according to the type.protected @Nullable ClassLoader@Nullable tools.jackson.databind.JavaTypegetInferredType(MessageProperties properties) Return the inferred type, if the type precedence is inferred and the header is present.Return the precedence.protected booleanhasInferredTypeHeader(MessageProperties properties) protected StringretrieveHeader(MessageProperties properties, String headerName) protected @Nullable StringretrieveHeaderAsString(MessageProperties properties, String headerName) voidsetBeanClassLoader(ClassLoader classLoader) voidsetIdClassMapping(Map<String, Class<?>> idClassMapping) voidsetTrustedPackages(String @Nullable ... trustedPackages) Specify a set of packages to trust during deserialization.voidsetTypePrecedence(JacksonJavaTypeMapper.TypePrecedence typePrecedence) Set the precedence for evaluating type information in message properties.Class<?> toClass(MessageProperties properties) tools.jackson.databind.JavaTypetoJavaType(MessageProperties properties) Determine the type from the message properties.
-
Field Details
-
DEFAULT_CLASSID_FIELD_NAME
- See Also:
-
DEFAULT_CONTENT_CLASSID_FIELD_NAME
- See Also:
-
DEFAULT_KEY_CLASSID_FIELD_NAME
- See Also:
-
-
Constructor Details
-
DefaultJacksonJavaTypeMapper
public DefaultJacksonJavaTypeMapper()
-
-
Method Details
-
getClassIdFieldName
-
getContentClassIdFieldName
-
getKeyClassIdFieldName
-
setIdClassMapping
-
setBeanClassLoader
- Specified by:
setBeanClassLoaderin interfaceorg.springframework.beans.factory.BeanClassLoaderAware
-
getClassLoader
-
addHeader
-
retrieveHeader
-
retrieveHeaderAsString
-
getIdClassMapping
-
hasInferredTypeHeader
-
fromInferredTypeHeader
-
getTypePrecedence
Return the precedence.- Specified by:
getTypePrecedencein interfaceJacksonJavaTypeMapper- Returns:
- the precedence.
- See Also:
-
setTypePrecedence
Set the precedence for evaluating type information in message properties. When using@RabbitListenerat 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 theinferredArgumentTypemessage 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 toJacksonJavaTypeMapper.TypePrecedence.TYPE_ID.- Parameters:
typePrecedence- the precedence.
-
setTrustedPackages
Specify a set of packages to trust during deserialization. The asterisk (*) means trust all.- Parameters:
trustedPackages- the trusted Java packages for deserialization
-
addTrustedPackages
Description copied from interface:JacksonJavaTypeMapperAdd trusted packages.- Specified by:
addTrustedPackagesin interfaceJacksonJavaTypeMapper- Parameters:
packages- the packages.
-
toJavaType
Description copied from interface:JacksonJavaTypeMapperDetermine the type from the message properties.- Specified by:
toJavaTypein interfaceJacksonJavaTypeMapper- Parameters:
properties- the properties.- Returns:
- the type.
-
getInferredType
Description copied from interface:JacksonJavaTypeMapperReturn the inferred type, if the type precedence is inferred and the header is present.- Specified by:
getInferredTypein interfaceJacksonJavaTypeMapper- Parameters:
properties- the message properties.- Returns:
- the type.
-
fromJavaType
Description copied from interface:JacksonJavaTypeMapperSet the message properties according to the type.- Specified by:
fromJavaTypein interfaceJacksonJavaTypeMapper- Parameters:
javaType- the type.properties- the properties.
-
fromClass
- Specified by:
fromClassin interfaceClassMapper
-
toClass
- Specified by:
toClassin interfaceClassMapper
-