Je tente d'utiliser la fonctionnalité de sérialisation Jackson de spring-data-redis. Je construis un ObjectMapper et en utilisant le GenericJackson2JsonRedisSerializer comme sérialiseur pour le redisTemplate:spring-data-redis Jackson sérialisation
@Configuration
public class SampleModule {
@Bean
public ObjectMapper objectMapper() {
return Jackson2ObjectMapperBuilder.json()
.serializationInclusion(JsonInclude.Include.NON_NULL) // Don’t include null values
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) //ISODate
.build();
}
@Bean
public RedisTemplate getRedisTemplate(ObjectMapper objectMapper, RedisConnectionFactory redisConnectionFactory){
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setDefaultSerializer(new GenericJackson2JsonRedisSerializer(objectMapper));
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
}
}
J'ai un SampleBean je tente de sauver:
@RedisHash("sampleBean")
public class SampleBean {
@Id
String id;
String value;
Date date;
public SampleBean(String value, Date date) {
this.value = value;
this.date = date;
}
}
Et un dépôt pour le grain de café:
public interface SampleBeanRepository extends CrudRepository {
}
Je suis alors en train d'écrire la fève à Redis:
ConfigurableApplicationContext context = SpringApplication.run(SampleRedisApplication.class, args);
SampleBean helloSampleBean = new SampleBean("hello", new Date());
ObjectMapper objectMapper = context.getBean(ObjectMapper.class);
logger.info("Expecting date to be written as: " + objectMapper.writeValueAsString(helloSampleBean.date));
SampleBeanRepository repository = context.getBean(SampleBeanRepository.class);
repository.save(helloSampleBean);
context.close();
Je m'attends à ce que redisTemplate utilise le sérialiseur pour écrire la date dans le SampleBean en tant qu'horodatage, mais il est écrit comme long.
Le pertinent référence ressort données Redis: http://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis:serializer exemple de code complet: https://github.com/bandyguy/spring-redis-jackson-sample-broken