Как зарегистрировать мой JsonSerializer в Spring - PullRequest
0 голосов
/ 11 октября 2018

Принимая ответ на этот вопрос: https://stackoverflow.com/a/45566139/2968729 Я хочу добавить NullSerializer к автоматически сконфигурированному ObjectMapper.Документация Spring Boot:

Любые bean-компоненты типа com.fasterxml.jackson.databind.Module автоматически регистрируются в автоматически настроенном Jackson2ObjectMapperBuilder и применяются ко всем создаваемым им экземплярам ObjectMapper.Это обеспечивает глобальный механизм для добавления пользовательских модулей при добавлении новых функций в ваше приложение.

Вот как я пытаюсь:

@Configuration
public class JacksonConfig {

    @Bean
    public Module customSerializer() {
        SimpleModule module = new SimpleModule();
        module.addSerializer(new NullSerializer());
        return module;
    }
}

Но я получаю:

NullSerializer does not define valid handledType() -- must either register with method that takes type argument or make serializer extend com.fasterxml.jackson.databind.ser.std.StdSerializer

Javadoc метода handleType () гласит:

Метод доступа к типу объектов, который может обрабатывать этот сериализатор.Обратите внимание, что эта информация не гарантируется быть точной - она ​​может быть более общей (супертип) - но она не должна быть неправильной (возвращать несвязанный тип).Реализация по умолчанию вернет null, что по сути означает то же самое, что и возвращение Object.class;то есть, что ничего не известно об обработанном типе.

Использование Spring Boot 2.0.5.RELEASE

1 Ответ

0 голосов
/ 11 октября 2018

Я думаю, проблема в том, что вы используете необработанный тип.Вы должны дать ему класс.

module.addSerializer(Object.class, new NullSerializer<>());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...