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:
-
JacksonObjectReaderJacksonObjectWriterObjectMapper
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classGenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<B extends tools.jackson.databind.cfg.MapperBuilder<? extends tools.jackson.databind.ObjectMapper,? extends tools.jackson.databind.cfg.MapperBuilder<?, ?>>> GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilderwraps around aJsonMapper.Builderproviding dedicated methods to configure aspects likeNullValueserialization strategy for the resultingObjectMapperto be used withGenericJacksonJsonRedisSerializeras well as potential Object/-readerand-writersettings. -
Constructor Summary
ConstructorsModifierConstructorDescriptionGenericJacksonJsonRedisSerializer(tools.jackson.databind.ObjectMapper mapper) Create aGenericJacksonJsonRedisSerializerwith a custom-configuredObjectMapper.protectedGenericJacksonJsonRedisSerializer(tools.jackson.databind.ObjectMapper mapper, JacksonObjectReader reader, JacksonObjectWriter writer) Create aGenericJacksonJsonRedisSerializerwith a custom-configuredObjectMapperconsidering potential Object/-readerand-writer. -
Method Summary
Modifier and TypeMethodDescriptionstatic GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<tools.jackson.databind.json.JsonMapper.Builder>builder()Creates a newGenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilderto configure and build aGenericJacksonJsonRedisSerializerusingJsonMapper.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.GenericJacksonJsonRedisSerializerBuilderto configure and build aGenericJacksonJsonRedisSerializer.create(Consumer<GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<tools.jackson.databind.json.JsonMapper.Builder>> configurer) Prepare a newGenericJacksonJsonRedisSerializerinstance.@Nullable Objectdeserialize(byte @Nullable [] source) Deserialize an object from the given binary data.<T> @Nullable Tdeserialize(byte @Nullable [] source, Class<T> type) protected tools.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
-
GenericJacksonJsonRedisSerializer
public GenericJacksonJsonRedisSerializer(tools.jackson.databind.ObjectMapper mapper) Create aGenericJacksonJsonRedisSerializerwith a custom-configuredObjectMapper.- Parameters:
mapper- must not be null.
-
GenericJacksonJsonRedisSerializer
protected GenericJacksonJsonRedisSerializer(tools.jackson.databind.ObjectMapper mapper, JacksonObjectReader reader, JacksonObjectWriter writer) Create aGenericJacksonJsonRedisSerializerwith a custom-configuredObjectMapperconsidering potential Object/-readerand-writer.- Parameters:
mapper- must not be null.reader- theJacksonObjectReaderfunction to read objects usingObjectMapper.writer- theJacksonObjectWriterfunction to write objects usingObjectMapper.
-
-
Method Details
-
create
public static GenericJacksonJsonRedisSerializer create(Consumer<GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder<tools.jackson.databind.json.JsonMapper.Builder>> configurer) Prepare a newGenericJacksonJsonRedisSerializerinstance.- 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.GenericJacksonJsonRedisSerializerBuilderto configure and build aGenericJacksonJsonRedisSerializerusingJsonMapper. -
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.GenericJacksonJsonRedisSerializerBuilderto configure and build aGenericJacksonJsonRedisSerializer.- Type Parameters:
B- type of theMapperBuilderto use.- Parameters:
builderFactory- factory to create aMapperBuilderfor theObjectMapper.- Returns:
- a new
GenericJacksonJsonRedisSerializer.GenericJacksonJsonRedisSerializerBuilder.
-
serialize
@Contract("_ -> !null") public byte[] serialize(@Nullable Object value) throws SerializationException 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 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: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
@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-typeofObjectfrom which the JSON will be deserialized; must not be null.- Returns:
- null for an empty source, or an
Objectof the giventypedeserialized from the array of bytes containing JSON. - Throws:
IllegalArgumentException- if the giventypeis 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
-