Я использую 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. Есть подсказки?
Спасибо