Vous l'avez probablement résolu entre-temps, mais pour d'autres chercheurs de réponses.
Selon la référence redis des données de printemps :
Par défaut, RedisCache et RedisTemplate sont configurés pour utiliser la sérialisation native Java.
À partir de stacktrace, je peux voir que vous utilisez réellement Redis pour la mise en cache, vous devez donc configurer RedisCache
et non RedisTemplate
. RedisCache
ne récupère pas votre @Bean
car il n'utilise pas RedisTemplate
intérieurement.
Exemple comment vous pouvez le faire en 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)));
}
}