Sie haben es wahrscheinlich inzwischen gelöst, aber für weitere Antwortsuchende.
Laut Spring Data Redis Referenz:
Standardmäßig sind RedisCache und RedisTemplate so konfiguriert, dass sie die native Java-Serialisierung verwenden.
Aus Stacktrace kann ich sehen, dass Sie tatsächlich Redis für das Caching verwenden, also müssen Sie RedisCache
konfigurieren und nicht RedisTemplate
. RedisCache
nimmt Ihr @Bean
nicht an weil es RedisTemplate
nicht verwendet im Inneren.
Beispiel wie man es in Java machen kann:
@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)));
}
}