Я хотел бы реорганизовать службу, чтобы она возвращала ваш объект домена, а не строки JSON, и позволила Spring обработать сериализацию (через MappingJacksonHttpMessageConverter
, как вы пишете). Начиная с Spring 3.1, реализация выглядит довольно аккуратно:
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE,
method = RequestMethod.GET
value = "/foo/bar")
@ResponseBody
public Bar fooBar(){
return myService.getBar();
}
Комментарии:
Сначала <mvc:annotation-driven />
или @EnableWebMvc
должны быть добавлены в конфигурацию вашего приложения.
Далее атрибут создает аннотации @RequestMapping
, которая используется для указания типа содержимого ответа. Следовательно, он должен быть установлен на MediaType.APPLICATION_JSON_VALUE (или "application/json"
).
Наконец, Джексон должен быть добавлен, так что любая сериализация и десериализация между Java и JSON будут автоматически обрабатываться Spring (зависимость Джексона обнаружена Spring, и MappingJacksonHttpMessageConverter
будет скрыт).