Spring Boot: пользовательские сериализаторы и десериализаторы JSON

Если вы используете Jackson для сериализации и десериализации данных JSON, вы можете написать свои собственные классы JsonSerializer и JsonDeserializer. Пользовательские сериализаторы обычно регистрируются в Jackson через модуль, но Spring Boot предоставляет альтернативную аннотацию @JsonComponent, которая упрощает непосредственную регистрацию Spring Beans.

Вы можете использовать аннотацию @JsonComponent непосредственно в реализациях JsonSerializer, JsonDeserializer или KeyDeserializer. Вы также можете использовать его в классах, которые содержат сериализаторы/десериализаторы в качестве внутренних классов, как показано в следующем примере:

import java.io.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import org.springframework.boot.jackson.*;

@JsonComponent
public class Example {

    public static class Serializer extends JsonSerializer {
        // ...
    }

    public static class Deserializer extends JsonDeserializer {
        // ...
    }

}

Все beans @JsonComponent в ApplicationContext автоматически регистрируются в Jackson. Поскольку @JsonComponent мета-аннотирован @Component, применяются обычные правила сканирования компонентов.

Spring Boot также предоставляет базовые классы JsonObjectSerializer и JsonObjectDeserializer, которые предоставляют полезные альтернативы стандартным версиям Jackson при сериализации объектов.

MessageCodesResolver

Spring MVC имеет стратегию генерации кодов ошибок для рендеринга сообщений об ошибках из ошибок привязки: MessageCodesResolver. Если вы установили свойство формата spring.mvc.message-codes-resolver PREFIX_ERROR_CODE или POSTFIX_ERROR_CODE, Spring Boot создаст его для вас.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки