[JAVA] Convertir les paramètres de demande en Enum au printemps

introduction

Je cherchais une bonne méthode car il était difficile d'obtenir une fois la valeur à gérer par Enum avec String et de la convertir.

Méthode de conversion

Préparez Enum et écrivez le processus d'acquisition et de génération en utilisant @ JsonValue et @ JsonCreator.

EnvironmentType.java


import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

import java.util.stream.Stream;

public enum EnvironmentType {
    PRODUCTION(1),
    STAGE(2),
    DEVELOP(3);

    private int value;

    EnvironmentType(int value) {
        this.value = value;
    }

    @JsonValue
    public int getValue() {
        return value;
    }

    @JsonCreator
    public static EnvironmentType create(Integer value) {
        if (value == null) {
            return null;
        }
        return Stream.of(values())
                .filter(v -> value.equals(v.getValue()))
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException());
    }
}

Définissez les propriétés à l'aide du type Enum pour le bean utilisé dans la demande.

Request.java


import EnvironmentType;

public class Request {
    private EnvironmentType type;

    public EnvironmentType getType() {
        return type;
    }

    public void setType(EnvironmentType type) {
        this.type = type;
    }
}

À la fin

C'était facile d'écrire en utilisant les annotations de Jackson.

Recommended Posts

Convertir les paramètres de demande en Enum au printemps
Reportez-vous à enum dans Thymeleaf
Comment utiliser Lombok au printemps
Comment inclure Spring Tool dans Eclipse 4.6.3?
Convertir des fichiers SVG en fichiers PNG en Java
Pour écrire des données de réponse directement dans Spring
Comment les propriétés de bean lient les paramètres de requête de style liste dans Spring
Convertir en balise dans la chaîne d'URL avec Rails
Sortie des journaux de demande et de réponse avec Spring Boot
JUnit 5: Comment écrire des cas de test dans enum
[Java] Convertit le code DB en valeur de code à l'aide d'énum
Comment ajouter un chemin de classe dans Spring Boot
Mappez les requêtes GET sur des objets complexes dans Spring.
Demander un exemple de sortie du journal des paramètres Java et Spring MVC
Comment se lier avec un fichier de propriétés dans Spring Boot
Comment définir plusieurs orm.xml dans Spring4, JPA2.1
Convertir l'énumération Java et JSON vers et depuis Jackson
Exemple de code pour convertir List en List <String> dans Java Stream
[Ruby on Rails] Comment écrire enum en japonais
Comment créer un projet Spring Boot dans IntelliJ
Convertir un fichier csv en fichier d'enregistrement de longueur fixe à l'aide d'énumération
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Comment tester l'écran de téléchargement de fichiers avec Spring + Selenium
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Présentez swagger-ui à l'API REST implémentée dans Spring Boot
Comment convertir un fichier en tableau d'octets en Java
Comment utiliser le référentiel de jobs en mémoire avec Spring Batch
Inject Logger au printemps
Pour déboguer avec Eclipse
Utilisez Interceptor au printemps
Microservices dans Spring Cloud
Obtenez des cookies au printemps
Découvrons comment recevoir avec Request Body avec l'API REST de Spring Boot
Comment modifier la valeur de paramètre de application.properties au moment du démarrage dans Spring Boot
Comprendre le flux approximatif de la demande à la réponse dans SpringWebMVC
Convertir un tableau d'octets Java en une chaîne hexadécimale
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment utiliser le type d'énumération Java (Enum) dans Mapper XML de MyBatis
Créez une API pour envoyer et recevoir des données Json avec Spring
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
Pour recevoir une demande vide avec Spring Web MVC @RequestBody
Configurer le résolveur en plusieurs parties pour permettre à Spring de télécharger des fichiers
[Rails] Comment écrire user_id (clé externe) dans un paramètre fort
Utilisez @ControllerAdvice, @ExceptionHandler, HandlerExceptionResolver dans Spring Boot pour intercepter les exceptions
Comment contrôler les transactions dans Spring Boot sans utiliser @Transactional