Поскольку WebMvcConfigurerAdapter устарел с весны 5.0, я изменил его на WebMvcConfigurationSupport, но в ответ я получаю нулевые значения.
{
"key": null,
"value": null,
"name":"test"
}
Если я изменю его обратно на WebMvcConfigurerAdapter, я получу ожидаемый ответ:
{
"name":"test"
}
Весенняя версия: 5.7.0
Джексон Версия: 2.9.7
Я много гуглил, но все равно не повезло. Я не хочу использовать устаревший класс.
Попытался удалить аннотацию @EnableWebMvc после добавления WebMvcConfigurationSupport, так как он не требуется.
Я переопределил configureMessageConverters, где я настраиваю MappingJackson2HttpMessageConverter с включением NOT_NULL
@Configuration
@EnableAspectJAutoProxy
@EnableSwagger2
@PropertySource("classpath:test.properties")
@ComponentScan(basePackages = {"com.test.web"})
public class UmwWebConfig extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
ByteArrayHttpMessageConverter bahHumbug = new ByteArrayHttpMessageConverter();
bahHumbug.setSupportedMediaTypes(Collections.singletonList(MediaType.parseMediaType("application/pdf")));
converters.add(bahHumbug);
final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
converter.setObjectMapper(objectMapper);
converters.add(converter);
super.configureMessageConverters(converters);
}
Хотите удалить пустые поля из ответа. Пожалуйста, дайте мне знать, если что-то не так в конфигурации.