Class GenericJacksonJsonRedisSerializer
java.lang.Object
org.springframework.data.redis.serializer.GenericJacksonJsonRedisSerializer
- All Implemented Interfaces:
RedisSerializer<Object>
Generic Jackson 3-based
RedisSerializer
that maps objects
to and from JSON.
JSON reading and writing can be customized by configuring a JacksonObjectReader
and
JacksonObjectWriter
.
- Since:
- 4.0
- Author:
- Christoph Strobl
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<B extends tools.jackson.databind.cfg.MapperBuilder<? extends tools.jackson.databind.ObjectMapper, ? extends tools.jackson.databind.cfg.MapperBuilder<?,
?>>> GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
wraps around aJsonMapper.Builder
providing dedicated methods to configure aspects likeNullValue
serialization strategy for the resultingObjectMapper
to be used withGenericJacksonJsonRedisSerializer
as well as potential Object/-reader
and-writer
settings. -
Constructor Summary
ConstructorsModifierConstructorDescriptionGenericJacksonJsonRedisSerializer
(tools.jackson.databind.ObjectMapper mapper) Create aGenericJacksonJsonRedisSerializer
with a custom-configuredObjectMapper
.protected
GenericJacksonJsonRedisSerializer
(tools.jackson.databind.ObjectMapper mapper, JacksonObjectReader reader, JacksonObjectWriter writer) Create aGenericJacksonJsonRedisSerializer
with a custom-configuredObjectMapper
considering potential Object/-reader
and-writer
. -
Method Summary
Modifier and TypeMethodDescriptionstatic GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
<tools.jackson.databind.json.JsonMapper.Builder> builder()
Creates a newGenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
to configure and build aGenericJacksonJsonRedisSerializer
usingJsonMapper
.static <B extends tools.jackson.databind.cfg.MapperBuilder<? extends tools.jackson.databind.ObjectMapper, ? extends tools.jackson.databind.cfg.MapperBuilder<?,
?>>>
GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<B> Creates a newGenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
to configure and build aGenericJacksonJsonRedisSerializer
.create
(Consumer<GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<tools.jackson.databind.json.JsonMapper.Builder>> configurer) Prepare a newGenericJacksonJsonRedisSerializer
instance.@Nullable Object
deserialize
(byte @Nullable [] source) Deserialize an object from the given binary data.<T> @Nullable T
deserialize
(byte @Nullable [] source, Class<T> type) protected tools.jackson.databind.JavaType
resolveType
(byte[] source, Class<?> type) byte[]
Serialize the given object to binary data.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface RedisSerializer
canSerialize, getTargetType
-
Constructor Details
-
GenericJacksonJsonRedisSerializer
public GenericJacksonJsonRedisSerializer(tools.jackson.databind.ObjectMapper mapper) Create aGenericJacksonJsonRedisSerializer
with a custom-configuredObjectMapper
.- Parameters:
mapper
- must not be null.
-
GenericJacksonJsonRedisSerializer
protected GenericJacksonJsonRedisSerializer(tools.jackson.databind.ObjectMapper mapper, JacksonObjectReader reader, JacksonObjectWriter writer) Create aGenericJacksonJsonRedisSerializer
with a custom-configuredObjectMapper
considering potential Object/-reader
and-writer
.- Parameters:
mapper
- must not be null.reader
- theJacksonObjectReader
function to read objects usingObjectMapper
.writer
- theJacksonObjectWriter
function to write objects usingObjectMapper
.
-
-
Method Details
-
create
public static GenericJacksonJsonRedisSerializer create(Consumer<GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<tools.jackson.databind.json.JsonMapper.Builder>> configurer) Prepare a newGenericJacksonJsonRedisSerializer
instance.- Parameters:
configurer
- the configurer forGenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
.- Returns:
- new instance of
GenericJacksonJsonRedisSerializer
.
-
builder
public static GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<tools.jackson.databind.json.JsonMapper.Builder> builder()Creates a newGenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
to configure and build aGenericJacksonJsonRedisSerializer
usingJsonMapper
. -
builder
public static <B extends tools.jackson.databind.cfg.MapperBuilder<? extends tools.jackson.databind.ObjectMapper, ? extends tools.jackson.databind.cfg.MapperBuilder<?,?>>> GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<B> builder(Supplier<B> builderFactory) Creates a newGenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
to configure and build aGenericJacksonJsonRedisSerializer
.- Type Parameters:
B
- type of theMapperBuilder
to use.- Parameters:
builderFactory
- factory to create aMapperBuilder
for theObjectMapper
.- Returns:
- a new
GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder
.
-
serialize
@Contract("_ -> !null") public byte[] serialize(@Nullable Object value) throws SerializationException Description copied from interface:RedisSerializer
Serialize the given object to binary data.- Specified by:
serialize
in interfaceRedisSerializer<Object>
- Parameters:
value
- object to serialize. Can be null.- Returns:
- the equivalent binary data. Can be an empty array but never null.
- Throws:
SerializationException
-
deserialize
@Contract("null -> null") public @Nullable Object deserialize(byte @Nullable [] source) throws SerializationException Description copied from interface:RedisSerializer
Deserialize an object from the given binary data.- Specified by:
deserialize
in interfaceRedisSerializer<Object>
- Parameters:
source
- object binary representation. Can be null.- Returns:
- the equivalent object instance. Can be null.
- Throws:
SerializationException
-
deserialize
@Contract("null, _ -> null") public <T> @Nullable T deserialize(byte @Nullable [] source, Class<T> type) throws SerializationException - Parameters:
source
- array of bytes containing the JSON to deserialize; can be null.type
-type
ofObject
from which the JSON will be deserialized; must not be null.- Returns:
- null for an empty source, or an
Object
of the giventype
deserialized from the array of bytes containing JSON. - Throws:
IllegalArgumentException
- if the giventype
is null.SerializationException
- if the array of bytes cannot be deserialized as an instance of the giventype
-
resolveType
protected tools.jackson.databind.JavaType resolveType(byte[] source, Class<?> type) throws IOException - Throws:
IOException
-