Я хочу получить ObjectMapper
(или средства отображения), которые Spring 5 создает, настраивает и использует для сериализации и десериализации обмена данными на моих ресурсах Rest (т.е. для вызова readerForUpdating () для него или для обеспечить дальнейшую настройку, такую как добавление миксинов).
Я пробовал решения, предложенные в этом вопросе , но ни один из них не сработал: я не использую Spring Boot, и ни один из ObjectMapper
или MappingJackson2HttpMessageConverter
не может быть @Autowired
.
В частности, я попытался перенастроить ObjectMapper из MappingJackson2HttpMessageConverter:
@EnableWebMvc
@Configuration
@EnableSwagger2
@ComponentScan(basePackages=...)
public class WebappConfig implements WebMvcConfigurer {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
// ...
for(HttpMessageConverter<?> c : converters) {
if(c instanceof MappingJackson2HttpMessageConverter) {
ObjectMapper o = ((MappingJackson2HttpMessageConverter) c).getObjectMapper();
//o.configure(SerializationFeature.INDENT_OUTPUT, true);
o.addMixIn(WorkStamp.class, WorkStampApi.class);
}
}
//...
}
}
Но это тоже не работает, так как этот миксин удаляет поле из сериализованного объекта, но у созданного JSON все еще есть это поле.