2015-04-11 17 views
5

W kontekście aplikacji Zarejestrowałem moduł ObjectMapper:Wiosna Boot ignorować ObjectMapper moduł

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

starałem się debugowania i jest ładowany (lub przynajmniej sposób public void setupModule(SetupContext context) jest wykonać przy starcie) ale gdy zgłoszę rest API, które zwraca obiekt z LocalDate mój deserializer jest ignorowany.

Kilka wskazówek, jak rozwiązać problem?

+0

Jak zarejestrowałeś obiekt ObjectMapper? Ponieważ SimpleModule musi zostać wstrzyknięty do ObjectMapper. – Augusto

+0

Nie skonfigurowałem go, moduł powinien być domyślnie skonfigurowany i robi to ... Mogę też użyć innej metody, co sugerujesz? – rascio

+0

Możesz spojrzeć na klasę 'JacksonAutoConfiguration' z wiosennego rozruchu i spróbować trochę ją debugować. Czytam to i próbuję rozgryźć jak do diabła udało mu się skonfigurować ObjectMapper. Wygląda na to, że klasa 'LocalDateDeserializer' (od wersji 1.2.2) znajduje się w ścieżce klasy, powinna załadować ją automatycznie jako część' JodaDateTimeJacksonConfiguration'. (Ciągle mam problem ze zrozumieniem tego typu konfiguracji: S) – Augusto

Odpowiedz

0

Zgodnie z Spring Boot documentation, w celu skonfigurowania ObjectMapper można zdefiniować komponent samodzielnie i zanotować go przy pomocy @Bean i @Primary. Tam możesz zarejestrować moduł. Możesz też dodać komponent typu Jackson2ObjectMapperBuilder, w którym możesz dostosować obiekt ObjectMapper.

+4

Ta sama dokumentacja, którą łączysz, mówi również "Innym sposobem dostosowania Jackson'a jest dodanie fasoli typu com.fasterxml.jackson.databind.Module do Twojego kontekstu. Będą rejestrowane z każdym komponentem typu ObjectMapper, zapewniając globalny mechanizm dodawania niestandardowych modułów podczas dodawania nowych funkcji do aplikacji. " Wygląda na to, co stara się zrobić oryginalny plakat. –

Powiązane problemy