REST с полной привязкой данных Spring и Jackson

Я использую Spring MVC для обработки запросов JSON POST. Под обложками я использую MappingJacksonHttpMessageConverter, построенный на процессоре JSON Джексона и включенный при использовании mvc: annotation-driven.

Одна из моих служб получает список действий:

@RequestMapping(value="/executeActions", method=RequestMethod.POST)
    public @ResponseBody String executeActions(@RequestBody List<ActionImpl> actions) {
        logger.info("executeActions");
        return "ACK";
    }

Я обнаружил, что Джексон отображает requestBody в список элементов java.util.LinkedHashMap (простая привязка данных). Вместо этого я хотел бы, чтобы запрос был привязан к списку типизированных объектов (в данном случае «ActionImpl»).

Я знаю, что это легко сделать, если вы напрямую используете ObjectMapper Джексона:

List<ActionImpl> result = mapper.readValue(src, new TypeReference<List<ActionImpl>>() { }); 

но мне было интересно, как лучше всего добиться этого при использовании Spring MVC и MappingJacksonHttpMessageConverter. Есть подсказки?

Спасибо

38
задан Javier Ferrero 14 December 2010 в 16:33
поделиться