У меня есть REST-контроллер Spring Boot с методом
@GetMapping(value = "/validate", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
@ResponseBody
public Result validate(
@ApiParam(value = "http://example.org/test", required = true) @RequestParam String iri,
@Context HttpServletRequest request
) {
return service.validate(iri);
}
...
и пользовательский сопоставитель объектов, настроенный как (Result
класс является частью сторонней библиотеки)
@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);
SimpleModule module = new SimpleModule();
module.addSerializer(Result.class, new ResultSerializer());
mapper.registerModule(module);
return mapper;
}
Внутри ResultSerializer
(моя пользовательская реализация) Мне нужно настроить вывод сериализации на основе заголовка Accept-language
(например, из ограничивающего HttpServletRequest). В настоящее время я могу решить только не используя Spring инъекцию для ObjectMapper
, явно создавая экземпляр ObjectMapper в моем контроллере, выполняя его и возвращая вывод. Итак:
Можно ли получить заголовок Accept-language
в экземпляре ObjectMapper
, внедренном как Spring bean-компонент?