@Override @SuppressWarnings("unchecked") protected <T> T deserializeInternal(byte[] bytes, Class<T> clazz) { return (T) OBJECT_SERIALIZER.deserialize(bytes); }
@Override protected String deserializeStringInternal(byte[] bytes) { return STRING_SERIALIZER.deserialize(bytes); }
@Override protected byte[] serializeInternal(Object object) { return OBJECT_SERIALIZER.serialize(object); }
private ReactiveRedisTemplate<String, Object> createReactiveRedisTemplate() { RedisSerializer<String> keySerializer = new StringRedisSerializer(); RedisSerializer<Object> defaultSerializer = (this.defaultRedisSerializer != null) ? this.defaultRedisSerializer : new JdkSerializationRedisSerializer(this.classLoader); RedisSerializationContext<String, Object> serializationContext = RedisSerializationContext .<String, Object>newSerializationContext(defaultSerializer) .key(keySerializer).hashKey(keySerializer).build(); return new ReactiveRedisTemplate<>(this.redisConnectionFactory, serializationContext); }
/** * Creates a new {@link RedisSerializationContext} using the given {@link SerializationPair}. * * @param serializationPair * @param <T> * @return */ static <T> RedisSerializationContext<T, T> just(SerializationPair<T> serializationPair) { return RedisSerializationContext.<T, T> newSerializationContext(serializationPair).build(); }
/** * Set the hash key {@link SerializationPair} given a {@link RedisSerializer}. * * @param serializer must not be {@literal null}. * @return {@literal this} builder. */ default RedisSerializationContextBuilder<K, V> hashKey(RedisSerializer<? extends Object> serializer) { hashKey(SerializationPair.fromSerializer(serializer)); return this; }
public byte[] serialize(Object object) throws SerializationException { if (object == null) { return new byte[0]; } try { return JSON.toJSONBytes(object, SerializerFeature.WriteClassName); } catch (Exception ex) { throw new SerializationException("Could not serialize: " + ex.getMessage(), ex); } }
/** * Set the value {@link SerializationPair} given a {@link RedisSerializer}. * * @param serializer must not be {@literal null}. * @return {@literal this} builder. */ default RedisSerializationContextBuilder<K, V> value(RedisSerializer<V> serializer) { value(SerializationPair.fromSerializer(serializer)); return this; }
/** * Set the hash value {@link SerializationPair} given a {@link RedisSerializer}. * * @param serializer must not be {@literal null}. * @return {@literal this} builder. */ default RedisSerializationContextBuilder<K, V> hashValue(RedisSerializer<? extends Object> serializer) { hashValue(SerializationPair.fromSerializer(serializer)); return this; }
/** * Set the string {@link SerializationPair} given a {@link RedisSerializer}. * * @param serializer must not be {@literal null}. * @return {@literal this} builder. */ default RedisSerializationContextBuilder<K, V> string(RedisSerializer<String> serializer) { string(SerializationPair.fromSerializer(serializer)); return this; }
/** * Creates a new {@link RedisSerializationContext} using the given {@link RedisSerializer}. * * @param serializer must not be {@literal null}. * @param <T> * @return */ static <T> RedisSerializationContext<T, T> fromSerializer(RedisSerializer<T> serializer) { return just(SerializationPair.fromSerializer(serializer)); }
/** * Set the hash key {@link RedisElementReader} and {@link RedisElementWriter}. * * @param reader must not be {@literal null}. * @param writer must not be {@literal null}. * @return {@literal this} builder. */ default RedisSerializationContextBuilder<K, V> hashKey(RedisElementReader<? extends Object> reader, RedisElementWriter<? extends Object> writer) { hashKey(SerializationPair.just(reader, writer)); return this; }
/** * Set the hash value {@link RedisElementReader} and {@link RedisElementWriter}. * * @param reader must not be {@literal null}. * @param writer must not be {@literal null}. * @return {@literal this} builder. */ default RedisSerializationContextBuilder<K, V> hashValue(RedisElementReader<? extends Object> reader, RedisElementWriter<? extends Object> writer) { hashValue(SerializationPair.just(reader, writer)); return this; }
/** * Creates a new {@link RedisSerializationContext} using a {@link JdkSerializationRedisSerializer}. * * @return new instance of {@link RedisSerializationContext}. * @since 2.1 */ static RedisSerializationContext<Object, Object> java() { return fromSerializer(RedisSerializer.java()); }
/** * Set the string {@link RedisElementReader} and {@link RedisElementWriter}. * * @param reader must not be {@literal null}. * @param writer must not be {@literal null}. * @return {@literal this} builder. */ default RedisSerializationContextBuilder<K, V> string(RedisElementReader<String> reader, RedisElementWriter<String> writer) { string(SerializationPair.just(reader, writer)); return this; }
@Override protected byte[] serializeInternal(String string) { return STRING_SERIALIZER.serialize(string); }
/** * Creates a new {@link RedisSerializationContext} using a {@link JdkSerializationRedisSerializer} with given * {@link ClassLoader}. * * @param classLoader the {@link ClassLoader} to use for deserialization. Can be {@literal null}. * @return new instance of {@link RedisSerializationContext}. * @since 2.1 */ static RedisSerializationContext<Object, Object> java(ClassLoader classLoader) { return fromSerializer(RedisSerializer.java(classLoader)); }