Il numero RedisCacheManager
richiede un solo RedisTemplate, il che significa che può serializzare solo un singolo tipo di oggetto.Come serializzare più tipi in Spring Redis Cache?
Poiché ho più tipi di oggetto da serializzare, come faccio a farlo?
Il numero RedisCacheManager
richiede un solo RedisTemplate, il che significa che può serializzare solo un singolo tipo di oggetto.Come serializzare più tipi in Spring Redis Cache?
Poiché ho più tipi di oggetto da serializzare, come faccio a farlo?
Se il tuo CacheManager
viene creato dal codice Java. new RedisTemplate()
deve essere utilizzato per supportare più tipi.
Per impostazione predefinita, org.springframework.data.redis.core.RedisTemplate
utilizzare JdkSerializationRedisSerializer
per convertire l'oggetto Java in byte prima di memorizzarli nel server Redis
. Potrebbe supportare l'interfaccia java.io.Serializable
della classe Java implementata.
È inoltre possibile specificare altri Serializers, ad esempio:
XStreamMarshaller xstream=new XStreamMarshaller();//org.springframework.data.redis.serializer.XStreamMarshaller
xstream.afterPropertiesSet();
//set serializer for all Redis type - convert object to XML string
redisTemplate.setDefaultSerializer(new OxmSerializer(xstream, xstream));
//set serializer for Redis key type
//redisTemplate.setKeySerializer(new StringRedisSerializer());
//set serializer for Redis value type
//redisTemplate.setValueSerializer(new OxmSerializer(xstream, xstream));