Redis
 sql >> Database >  >> NoSQL >> Redis

I dati di primavera sovrascrivono il serializzatore predefinito

Probabilmente l'hai risolto nel frattempo, ma per altri cercatori di risposte.

Secondo i dati primaverili redis riferimento:

Per impostazione predefinita, RedisCache e RedisTemplate sono configurati per utilizzare la serializzazione nativa Java.

Da stacktrace posso vedere che stai effettivamente usando Redis per la memorizzazione nella cache, quindi devi configurare RedisCache e non RedisTemplate . RedisCache non sta raccogliendo il tuo @Bean perché non utilizza RedisTemplate internamente.

Esempio di come puoi farlo in Java:

    @EnableCaching
    @Configuration
    public class CacheConfig {

        @Bean
        @Primary
        public RedisCacheConfiguration defaultCacheConfig(ObjectMapper objectMapper) {
            return RedisCacheConfiguration.defaultCacheConfig()
                .serializeKeysWith(SerializationPair.fromSerializer(new StringRedisSerializer()))
                .serializeValuesWith(SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer(objectMapper)));
        }

    }