DATAREDIS-713 - Introduce constants for commonly used StringSerializers.
We now provide constant StringSerializers for US-ASCII, ISO 8859-1 and UTF-8 encoding. Original Pull Request: #288
This commit is contained in:
committed by
Christoph Strobl
parent
1e2a0f858f
commit
841d8ef447
@@ -95,7 +95,7 @@ public class RedisCacheConfiguration {
|
||||
registerDefaultConverters(conversionService);
|
||||
|
||||
return new RedisCacheConfiguration(Duration.ZERO, true, true, null,
|
||||
SerializationPair.fromSerializer(new StringRedisSerializer()),
|
||||
SerializationPair.fromSerializer(StringRedisSerializer.UTF_8),
|
||||
SerializationPair.fromSerializer(new JdkSerializationRedisSerializer()), conversionService);
|
||||
}
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco
|
||||
* @param connection Redis connection
|
||||
*/
|
||||
public DefaultStringRedisConnection(RedisConnection connection) {
|
||||
this(connection, new StringRedisSerializer());
|
||||
this(connection, StringRedisSerializer.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -96,7 +96,7 @@ public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperation
|
||||
@SuppressWarnings("rawtypes") private @Nullable RedisSerializer valueSerializer = null;
|
||||
@SuppressWarnings("rawtypes") private @Nullable RedisSerializer hashKeySerializer = null;
|
||||
@SuppressWarnings("rawtypes") private @Nullable RedisSerializer hashValueSerializer = null;
|
||||
private RedisSerializer<String> stringSerializer = new StringRedisSerializer();
|
||||
private RedisSerializer<String> stringSerializer = StringRedisSerializer.UTF_8;
|
||||
|
||||
private @Nullable ScriptExecutor<K> scriptExecutor;
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
* {@link StringRedisConnection}.
|
||||
*
|
||||
* @author Costin Leau
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class StringRedisTemplate extends RedisTemplate<String, String> {
|
||||
|
||||
@@ -39,11 +40,10 @@ public class StringRedisTemplate extends RedisTemplate<String, String> {
|
||||
* and {@link #afterPropertiesSet()} still need to be called.
|
||||
*/
|
||||
public StringRedisTemplate() {
|
||||
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
|
||||
setKeySerializer(stringSerializer);
|
||||
setValueSerializer(stringSerializer);
|
||||
setHashKeySerializer(stringSerializer);
|
||||
setHashValueSerializer(stringSerializer);
|
||||
setKeySerializer(StringRedisSerializer.UTF_8);
|
||||
setValueSerializer(StringRedisSerializer.UTF_8);
|
||||
setHashKeySerializer(StringRedisSerializer.UTF_8);
|
||||
setHashValueSerializer(StringRedisSerializer.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -127,7 +127,7 @@ public class RedisMessageListenerContainer implements InitializingBean, Disposab
|
||||
|
||||
private final SubscriptionTask subscriptionTask = new SubscriptionTask();
|
||||
|
||||
private volatile RedisSerializer<String> serializer = new StringRedisSerializer();
|
||||
private volatile RedisSerializer<String> serializer = StringRedisSerializer.UTF_8;
|
||||
|
||||
private long recoveryInterval = DEFAULT_RECOVERY_INTERVAL;
|
||||
|
||||
|
||||
@@ -92,6 +92,7 @@ import org.springframework.util.StringUtils;
|
||||
* @author Greg Turnquist
|
||||
* @author Thomas Darimont
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
* @see org.springframework.jms.listener.adapter.MessageListenerAdapter
|
||||
*/
|
||||
public class MessageListenerAdapter implements InitializingBean, MessageListener {
|
||||
@@ -317,9 +318,8 @@ public class MessageListenerAdapter implements InitializingBean, MessageListener
|
||||
* @see JdkSerializationRedisSerializer
|
||||
*/
|
||||
protected void initDefaultStrategies() {
|
||||
RedisSerializer<String> serializer = new StringRedisSerializer();
|
||||
setSerializer(serializer);
|
||||
setStringSerializer(serializer);
|
||||
setSerializer(StringRedisSerializer.UTF_8);
|
||||
setStringSerializer(StringRedisSerializer.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -98,7 +98,7 @@ class DefaultRedisSerializationContext<K, V> implements RedisSerializationContex
|
||||
private @Nullable SerializationPair<V> valueTuple;
|
||||
private @Nullable SerializationPair<?> hashKeyTuple;
|
||||
private @Nullable SerializationPair<?> hashValueTuple;
|
||||
private SerializationPair<String> stringTuple = SerializationPair.fromSerializer(new StringRedisSerializer());
|
||||
private SerializationPair<String> stringTuple = SerializationPair.fromSerializer(StringRedisSerializer.UTF_8);
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.data.redis.serializer.RedisSerializationContextBuilder#key(SerializationPair)
|
||||
|
||||
@@ -93,7 +93,7 @@ public interface RedisSerializationContext<K, V> {
|
||||
* @return
|
||||
*/
|
||||
static RedisSerializationContext<String, String> string() {
|
||||
return fromSerializer(new StringRedisSerializer());
|
||||
return fromSerializer(StringRedisSerializer.UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,20 +22,42 @@ import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* Simple String to byte[] (and back) serializer. Converts Strings into bytes and vice-versa using the specified charset
|
||||
* (by default UTF-8).
|
||||
* Simple {@literal} to {@literal byte[]} (and back) serializer. Converts Strings into bytes and vice-versa using the
|
||||
* specified charset (by default UTF-8).
|
||||
* <p>
|
||||
* Useful when the interaction with the Redis happens mainly through Strings.
|
||||
* <p>
|
||||
* Does not perform any null conversion since empty strings are valid keys/values.
|
||||
* Does not perform any {@literal null} conversion since empty strings are valid keys/values.
|
||||
*
|
||||
* @author Costin Leau
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class StringRedisSerializer implements RedisSerializer<String> {
|
||||
|
||||
private final Charset charset;
|
||||
|
||||
/**
|
||||
* Serializer to use 7 bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set.
|
||||
*
|
||||
* @since 2.1
|
||||
*/
|
||||
public static final StringRedisSerializer US_ASCII = new StringRedisSerializer(StandardCharsets.US_ASCII);
|
||||
|
||||
/**
|
||||
* Serializer to use ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1.
|
||||
*
|
||||
* @since 2.1
|
||||
*/
|
||||
public static final StringRedisSerializer ISO_8859_1 = new StringRedisSerializer(StandardCharsets.ISO_8859_1);
|
||||
|
||||
/**
|
||||
* Serializer to use 8 bit UCS Transformation Format.
|
||||
*
|
||||
* @since 2.1
|
||||
*/
|
||||
public static final StringRedisSerializer UTF_8 = new StringRedisSerializer(StandardCharsets.UTF_8);
|
||||
|
||||
/**
|
||||
* Creates a new {@link StringRedisSerializer} using {@link StandardCharsets#UTF_8 UTF-8}.
|
||||
*/
|
||||
|
||||
@@ -79,7 +79,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
Assert.notNull(factory, "a valid factory is required");
|
||||
|
||||
RedisTemplate<String, Double> redisTemplate = new RedisTemplate<>();
|
||||
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setKeySerializer(StringRedisSerializer.UTF_8);
|
||||
redisTemplate.setValueSerializer(new GenericToStringSerializer<>(Double.class));
|
||||
redisTemplate.setExposeConnection(true);
|
||||
redisTemplate.setConnectionFactory(factory);
|
||||
|
||||
@@ -102,7 +102,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
private RedisAtomicInteger(String redisCounter, RedisConnectionFactory factory, @Nullable Integer initialValue) {
|
||||
|
||||
RedisTemplate<String, Integer> redisTemplate = new RedisTemplate<>();
|
||||
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setKeySerializer(StringRedisSerializer.UTF_8);
|
||||
redisTemplate.setValueSerializer(new GenericToStringSerializer<>(Integer.class));
|
||||
redisTemplate.setExposeConnection(true);
|
||||
redisTemplate.setConnectionFactory(factory);
|
||||
|
||||
@@ -79,7 +79,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
Assert.notNull(factory, "a valid factory is required");
|
||||
|
||||
RedisTemplate<String, Long> redisTemplate = new RedisTemplate<>();
|
||||
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setKeySerializer(StringRedisSerializer.UTF_8);
|
||||
redisTemplate.setValueSerializer(new GenericToStringSerializer<>(Long.class));
|
||||
redisTemplate.setExposeConnection(true);
|
||||
redisTemplate.setConnectionFactory(factory);
|
||||
|
||||
Reference in New Issue
Block a user