2015-04-11 9 views
5

ObjectMapper görmezden:Bahar Boot ben kayıt yaptıran bir ObjectMapper modülü uygulama bağlamında modülü

@Bean 
public SimpleModule jsr310Module() { 
    final SimpleModule module = new SimpleModule(); 
    module.addSerializer(new LocalDateSerializer()); 
    module.addDeserializer(LocalDate.class, new LocalDateDeserializer()); 
    return module; 
} 

Ben ayıklama çalıştı ve yüklendiği (veya en azından yöntem public void setupModule(SetupContext context) açılışta çalıştırmak olduğunu) ama dediğim zaman LocalDate ile bir nesne döndüren bir geri kalanı API'sı yok edilmiyor.

Sorunu çözmek için bazı ipuçları?

+0

ObjectMapper'ı nasıl kaydettiniz? SimpleModule'in ObjectMapper'a enjekte edilmesi gerektiğinden. – Augusto

+0

Yapılandırmadım, modül varsayılan olarak yapılandırılmalı ve bunu yapar ... Başka bir yol kullanabilirim, ne önerirsiniz? – rascio

+0

Spring-boot'tan 'JacksonAutoConfiguration' sınıfına bakabilirsiniz ve biraz hata ayıklamaya çalışabilirsiniz. Okuyorum ve ObjectMapper'ı nasıl ayarlamayı başardığını anlamaya çalışıyorum. 'LocalDateDeserializer' sınıfı (sürüm 1.2.2'den) sınıf yolundaysa, otomatik olarak 'JodaDateTimeJacksonConfiguration' parçası olarak yüklenmelidir. (Bu tür bir yapılandırmayı anlamada hala sorun yaşıyorum: S) – Augusto

cevap

0

Spring Boot documentation'a göre, ObjectMapper'ı yapılandırmak için, Bean'i kendiniz tanımlayabilirsiniz ve @Bean ve @Primary ile ek açıklama ekleyebilirsiniz. Orada modülü kaydedebilirsiniz. Veya ObjectMapper'ı özelleştirebileceğiniz Jackson2ObjectMapperBuilder türünde bir fasulye ekleyebilirsiniz.

+4

Bağlantınızdaki aynı belgeler de şöyle diyor: "Jackson'ı özelleştirmek için başka bir yöntem de fasülye eklemek com.fasterxml.jackson.databind.Module, içeriğinize, uygulamanıza yeni özellikler eklediğinizde özel modüller katmak için global bir mekanizma sağlayan ObjectMapper türünde her fasulyeye kaydedilecektir. " Orijinal posterin yapmaya çalıştığı şey bu gibi görünüyor. –