Class DefaultClassMapper
java.lang.Object
org.springframework.amqp.support.converter.DefaultClassMapper
- All Implemented Interfaces:
ClassMapper
,InitializingBean
Maps to/from JSON using type information in the
MessageProperties
; the default
name of the message property containing the type is
"__TypeId__". An optional property
setDefaultType(Class)
is provided that allows mapping to a statically defined
type, if no message property is found in the message properties.
setIdClassMapping(Map)
can be used to map tokens in the
"__TypeId__" header to classes. If this class is not a
Spring-managed bean, call afterPropertiesSet()
to set up the class to id
mapping.- Author:
- Mark Pollack, Gary Russell, Artem Bilan
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
fromClass
(Class<?> clazz, MessageProperties properties) The name of the header that contains the type id.void
setDefaultMapClass
(Class<?> defaultMapClass) Set the type ofMap
to use.void
setDefaultType
(Class<?> defaultType) The type returned bytoClass(MessageProperties)
if no type information is found in the message properties.void
setIdClassMapping
(Map<String, Class<?>> idClassMapping) Set a map of type Ids (in the "__TypeId__" header) to classes.void
setTrustedPackages
(String... trustedPackages) Specify a set of packages to trust during deserialization.Class<?>
toClass
(MessageProperties properties)
-
Field Details
-
DEFAULT_CLASSID_FIELD_NAME
- See Also:
-
-
Constructor Details
-
DefaultClassMapper
public DefaultClassMapper()
-
-
Method Details
-
setDefaultType
The type returned bytoClass(MessageProperties)
if no type information is found in the message properties.- Parameters:
defaultType
- the defaultType to set.
-
setDefaultMapClass
Set the type ofMap
to use. For outbound messages, set the "__TypeId__" header toHashTable
. For inbound messages, if the "__TypeId__" header isHashtable
convert to this class.- Parameters:
defaultMapClass
- the map class.- Since:
- 2.0
- See Also:
-
getClassIdFieldName
The name of the header that contains the type id.- Returns:
- "__TypeId__"
- See Also:
-
setIdClassMapping
Set a map of type Ids (in the "__TypeId__" header) to classes. For outbound messages, if the class is not in this map, the "__TypeId__" header is set to the fully qualified class name.- Parameters:
idClassMapping
- the map of IDs to classes.
-
setTrustedPackages
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
-
afterPropertiesSet
public void afterPropertiesSet()Creates the reverse mapping from class to type id.
- Specified by:
afterPropertiesSet
in interfaceInitializingBean
-
fromClass
- Specified by:
fromClass
in interfaceClassMapper
-
toClass
- Specified by:
toClass
in interfaceClassMapper
-