Używam Spring Boot (1.2.1), w podobny sposób, jak w ich samouczku Tworzenie usługi sieci Web RESTful :
@RestController
public class EventController {
@RequestMapping("/events/all")
EventList events() {
return proxyService.getAllEvents();
}
}
Tak więc powyżej, Spring MVC niejawnie używa Jacksona do serializacji mojego EventList
obiektu do formatu JSON.
Ale chcę zrobić kilka prostych dostosowań do formatu JSON, na przykład:
setSerializationInclusion(JsonInclude.Include.NON_NULL)
Pytanie brzmi, jaki jest najprostszy sposób dostosowania niejawnego mapowania JSON?
Wypróbowałem podejście opisane w tym poście na blogu , tworząc CustomObjectMapper i tak dalej, ale krok 3, „Rejestracja klas w kontekście Spring”, kończy się niepowodzeniem:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'jacksonFix': Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException:
Could not autowire method: public void com.acme.project.JacksonFix.setAnnotationMethodHandlerAdapter(org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter);
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter]
found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Wygląda na to, że te instrukcje dotyczą starszych wersji Spring MVC, a ja szukam prostego sposobu, aby to działało z najnowszym Spring Boot.