Class GenericJackson2JsonRedisSerializer
java.lang.Object
org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
- All Implemented Interfaces:
RedisSerializer<Object>
Generic Jackson 2-based
RedisSerializer that maps objects to JSON using dynamic typing.
JSON reading and writing can be customized by configuring JacksonObjectReader respective
JacksonObjectWriter.
- Since:
- 1.6
- Author:
- Christoph Strobl, Mark Paluch, Mao Shuai
-
Constructor Summary
ConstructorsConstructorDescriptionCreatesGenericJackson2JsonRedisSerializerand configuresObjectMapperfor default typing.GenericJackson2JsonRedisSerializer(com.fasterxml.jackson.databind.ObjectMapper mapper) Setting a custom-configuredObjectMapperis one way to take further control of the JSON serialization process.GenericJackson2JsonRedisSerializer(com.fasterxml.jackson.databind.ObjectMapper mapper, JacksonObjectReader reader, JacksonObjectWriter writer) Setting a custom-configuredObjectMapperis one way to take further control of the JSON serialization process.GenericJackson2JsonRedisSerializer(String classPropertyTypeName) CreatesGenericJackson2JsonRedisSerializerand configuresObjectMapperfor default typing using the given name.GenericJackson2JsonRedisSerializer(String classPropertyTypeName, JacksonObjectReader reader, JacksonObjectWriter writer) CreatesGenericJackson2JsonRedisSerializerand configuresObjectMapperfor default typing using the given name. -
Method Summary
Modifier and TypeMethodDescriptiondeserialize(byte[] source) Deserialize an object from the given binary data.<T> Tdeserialize(byte[] source, Class<T> type) static voidregisterNullValueSerializer(com.fasterxml.jackson.databind.ObjectMapper objectMapper, String classPropertyTypeName) RegisterGenericJackson2JsonRedisSerializer.NullValueSerializerin the givenObjectMapperwith an optionalclassPropertyTypeName.protected com.fasterxml.jackson.databind.JavaTyperesolveType(byte[] source, Class<?> type) byte[]Serialize the given object to binary data.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.data.redis.serializer.RedisSerializer
canSerialize, getTargetType
-
Constructor Details
-
GenericJackson2JsonRedisSerializer
public GenericJackson2JsonRedisSerializer()CreatesGenericJackson2JsonRedisSerializerand configuresObjectMapperfor default typing. -
GenericJackson2JsonRedisSerializer
CreatesGenericJackson2JsonRedisSerializerand configuresObjectMapperfor default typing using the given name. In case of an empty or null String the defaultJsonTypeInfo.Id.CLASSwill be used.- Parameters:
classPropertyTypeName- name of the JSON property holding type information. Can be null.- See Also:
-
ObjectMapper.activateDefaultTypingAsProperty(PolymorphicTypeValidator, DefaultTyping, String)ObjectMapper.activateDefaultTyping(PolymorphicTypeValidator, DefaultTyping, As)
-
GenericJackson2JsonRedisSerializer
public GenericJackson2JsonRedisSerializer(@Nullable String classPropertyTypeName, JacksonObjectReader reader, JacksonObjectWriter writer) CreatesGenericJackson2JsonRedisSerializerand configuresObjectMapperfor default typing using the given name. In case of an empty or null String the defaultJsonTypeInfo.Id.CLASSwill be used.- Parameters:
classPropertyTypeName- name of the JSON property holding type information. Can be null.reader- theJacksonObjectReaderfunction to read objects usingObjectMapper.writer- theJacksonObjectWriterfunction to write objects usingObjectMapper.- Since:
- 3.0
- See Also:
-
ObjectMapper.activateDefaultTypingAsProperty(PolymorphicTypeValidator, DefaultTyping, String)ObjectMapper.activateDefaultTyping(PolymorphicTypeValidator, DefaultTyping, As)
-
GenericJackson2JsonRedisSerializer
public GenericJackson2JsonRedisSerializer(com.fasterxml.jackson.databind.ObjectMapper mapper) Setting a custom-configuredObjectMapperis one way to take further control of the JSON serialization process. For example, an extendedSerializerFactorycan be configured that provides custom serializers for specific types.- Parameters:
mapper- must not be null.
-
GenericJackson2JsonRedisSerializer
public GenericJackson2JsonRedisSerializer(com.fasterxml.jackson.databind.ObjectMapper mapper, JacksonObjectReader reader, JacksonObjectWriter writer) Setting a custom-configuredObjectMapperis one way to take further control of the JSON serialization process. For example, an extendedSerializerFactorycan be configured that provides custom serializers for specific types.- Parameters:
mapper- must not be null.reader- theJacksonObjectReaderfunction to read objects usingObjectMapper.writer- theJacksonObjectWriterfunction to write objects usingObjectMapper.- Since:
- 3.0
-
-
Method Details
-
registerNullValueSerializer
public static void registerNullValueSerializer(com.fasterxml.jackson.databind.ObjectMapper objectMapper, @Nullable String classPropertyTypeName) RegisterGenericJackson2JsonRedisSerializer.NullValueSerializerin the givenObjectMapperwith an optionalclassPropertyTypeName. This method should be called by code that customizesGenericJackson2JsonRedisSerializerby providing an externalObjectMapper.- Parameters:
objectMapper- the object mapper to customize.classPropertyTypeName- name of the type property. Defaults to@classif null/empty.- Since:
- 2.2
-
serialize
Description copied from interface:RedisSerializerSerialize the given object to binary data.- Specified by:
serializein interfaceRedisSerializer<Object>- Parameters:
value- object to serialize. Can be null.- Returns:
- the equivalent binary data. Can be null.
- Throws:
SerializationException
-
deserialize
Description copied from interface:RedisSerializerDeserialize an object from the given binary data.- Specified by:
deserializein interfaceRedisSerializer<Object>- Parameters:
source- object binary representation. Can be null.- Returns:
- the equivalent object instance. Can be null.
- Throws:
SerializationException
-
deserialize
@Nullable public <T> T deserialize(@Nullable byte[] source, Class<T> type) throws SerializationException - Parameters:
source- can be null.type- must not be null.- Returns:
- null for empty source.
- Throws:
SerializationException
-
resolveType
protected com.fasterxml.jackson.databind.JavaType resolveType(byte[] source, Class<?> type) throws IOException - Throws:
IOException
-