GenericJackson2JsonRedisSerializer трябва да свърши работата
@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;
}
Това ще добави @Class свойството на JSON, за да разбере типа, което помага на Джаксън да се десериализира, така че няма нужда изрично да картографирате модела в конфигурационния клас.
"{\"@class\":\"com.prnv.model.WhitePaper\",\"title\":\"Hey\",\"author\":{\"@class\":\"com.prnv.model.Author\",\"name\":\"Hello\"},\"description\":\"Description\"}"
В услугата можете да кеширате модела с помощта на
@Cacheable(value = "whitePaper", key = "#title")
public WhitePaper findWhitePaperByTitle(String title)
{
WhitePaper whitePaper = repository.findByTitle(title);
return whitePaper;
}
Вижте тази статия:http://blog.pranavek.com/2016/12/25/integrating-redis-with-spring-application