Конвертер HTTP-сообщений Spring Boot иногда сериализует null

Можно ли при загрузке Spring иметь много разных версий htt p-конвертеров gson или Jackson и использовать их динамически всякий раз, когда мне нужен определенный тип формата данных?

1 ответ

Вам нужно создать два боба для GsonHttpMessageConverter первый с настройками по умолчанию и второй с настройкой для сериализации нулей следующим образом:

@Bean
public GsonHttpMessageConverter gsonHttpMessageConverter() {
    return buildGsonHttpMessageConverter(MapperUtil.getGsonInstance());
}

@Bean
public GsonHttpMessageConverter gsonHttpMessageConverterWithNulls() {
    return buildGsonHttpMessageConverter(MapperUtil.getGsonInstanceSerializeNulls());
}

private GsonHttpMessageConverter buildGsonHttpMessageConverter(final Gson gson) {
    final GsonHttpMessageConverter converter = new GsonHttpMessageConverter();
    converter.setGson(gson);
    return converter;
}

И когда вы захотите воспользоваться одним из них, позвоните @Qualifier("someBean")аннотация. следующим образом:

@Autowired
@Qualifier("gsonHttpMessageConverter")
GsonHttpMessageConverter gsonHttpMessageConverter;

@Autowired
@Qualifier("gsonHttpMessageConverterWithNulls")
GsonHttpMessageConverter gsonHttpMessageConverterWithNulls;
Другие вопросы по тегам