GenericJackson2JsonRedisSerializer zou het werk moeten doen
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
Dit voegt @Class . toe eigenschap toe aan de JSON om het type te begrijpen, wat Jackson helpt bij het deserialiseren, dus het is niet nodig om het model expliciet toe te wijzen aan de configuratieklasse.
"{\"@class\":\"com.prnv.model.WhitePaper\",\"title\":\"Hey\",\"author\":{\"@class\":\"com.prnv.model.Author\",\"name\":\"Hello\"},\"description\":\"Description\"}"
In de service kunt u het model cachen met
@Cacheable(value = "whitePaper", key = "#title")
public WhitePaper findWhitePaperByTitle(String title)
{
WhitePaper whitePaper = repository.findByTitle(title);
return whitePaper;
}
Bekijk dit artikel:http://blog.pranavek.com/2016/12/25/integrating-redis-with-spring-application