Una introducción detallada a la anotación @Validation de validación de parámetros en Spring

En el marco de Spring, @Validlas anotaciones son una herramienta poderosa para verificar y verificar los datos ingresados ​​por los usuarios para garantizar la legalidad e integridad de los datos. Al combinarse con otras anotaciones y validadores, @Validlas anotaciones pueden implementar fácilmente la validación de datos, mejorando así la solidez y seguridad de la aplicación. Este artículo detallará las anotaciones en Spring @Validy cómo usarlas correctamente en su aplicación.

¿ Qué son @Validlas anotaciones?

@ValidLa anotación es una anotación en el marco Spring, que se utiliza para marcar el objetivo de la validación de datos en los parámetros del método o los valores de retorno del método. Le dice a Spring que realice la validación de datos al procesar llamadas a métodos. Esta anotación generalmente se usa en combinación con otras anotaciones relacionadas con la validación , como @NotNull, @NotBlank, etc., para especificar reglas de validación.@Min@Max

Validación de parámetros de método mediante @Validanotaciones.

Al utilizar anotaciones en los parámetros del método @Valid, los parámetros se pueden validar antes de la invocación del método. Esto es útil para garantizar la validez de los datos de entrada.

A continuación se muestra un ejemplo que muestra cómo usar @Validanotaciones para la validación de parámetros en los métodos del controlador Spring:

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    
    

    @PostMapping("/register")
    public ResponseEntity<String> registerUser(@Valid @RequestBody UserDto userDto) {
    
    
        // 处理用户注册逻辑
        return ResponseEntity.ok("User registered successfully");
    }
}

En el ejemplo anterior, @Validla anotación se utiliza userDtoen el parámetro. Spring validará las propiedades del parámetro registerUserantes de llamar al método .userDto

Combinado con otras anotaciones de validación.

Normalmente, @Validlas anotaciones se utilizan junto con otras anotaciones relacionadas con la validación para definir reglas de validación. Por ejemplo, puede utilizar anotaciones como @NotNull, @NotBlank, @Min, @Maxetc. para realizar una validación más específica de los atributos.

public class UserDto {
    
    

    @NotNull
    @NotBlank
    private String username;

    @NotNull
    @Min(18)
    private Integer age;

    // ...其他属性和方法
}

En el ejemplo anterior, usernameel atributo está anotado con @NotNully @NotBlank, lo que indica que no puede estar vacío y no puede contener solo espacios. ageEl atributo está anotado con @NotNully @Min(18), lo que indica que no puede estar vacío y debe ser mayor o igual a 18.
En el marco de Spring, puede utilizar varias anotaciones de validación para definir diferentes tipos de reglas de validación. Estas anotaciones se encuentran javax.validation.constraintsdebajo del paquete y se utilizan para validar diferentes aspectos de los datos. Las siguientes son algunas anotaciones de validación comunes y sus correspondientes reglas de validación:

  1. @NotNull: El campo de validación no puede ser null.

  2. @NotBlank: la cadena de verificación no puede estar vacía y contiene al menos un carácter no nulo.

  3. @NotEmpty: A diferencia de Validar que una cadena, colección o matriz no puede estar vacía, @NotBlankno requiere al menos un carácter que no sea nulo.

  4. @Min(value): El número de validación debe ser mayor o igual al mínimo especificado.

  5. @Max(value): El número de validación debe ser menor o igual al valor máximo especificado.

  6. @Size(max, min): valida que el tamaño de una cadena, colección o matriz debe estar dentro del rango especificado.

  7. @Email: Verifique que la cadena sea una dirección de correo electrónico válida.

  8. @Pattern(regexp): Verifique que la cadena coincida con la expresión regular especificada.

  9. @Digits(integer, fraction): Valida que un número cumpla con la cantidad especificada de dígitos, incluidas partes enteras y fraccionarias.

  10. @Positive: El número de validación debe ser positivo.

  11. @Negative: El número de validación debe ser negativo.

  12. @Past: La fecha de validación debe ser anterior.

  13. @Future: La fecha de validación debe ser futura.

  14. @AssertTrue: El campo de validación debe ser true.

  15. @AssertFalse: El campo de validación debe ser false.

  16. @CreditCardNumber: Verifique que la cadena sea un número de tarjeta de crédito válido.

  17. @URL: Verifique si la cadena es una URL válida.

  18. @Valid: Se utiliza para marcar objetos que requieren validación anidada.

Estas son solo algunas anotaciones de validación comunes; de hecho, hay muchas más anotaciones de validación disponibles en Spring. Puede elegir anotaciones de validación apropiadas para definir reglas de validación de datos basadas en necesidades comerciales específicas. Además, también puede implementar una lógica de validación más compleja mediante validadores personalizados para cumplir con requisitos de validación específicos.

validador personalizado

Además de utilizar anotaciones de validación predefinidas, también puede crear validadores personalizados para satisfacer necesidades de validación específicas. Para crear un validador personalizado, implemente javax.validation.ConstraintValidatorla interfaz.

A continuación se muestra un ejemplo que muestra cómo crear un validador personalizado:

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class AgeConstraintValidator implements ConstraintValidator<AgeConstraint, Integer> {
    
    

    @Override
    public boolean isValid(Integer age, ConstraintValidatorContext context) {
    
    
        return age != null && age >= 18;
    }
}

Luego, puedes usar este validador en anotaciones personalizadas:

import javax.validation.Constraint;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

@Target({
    
    FIELD, METHOD, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = AgeConstraintValidator.class)
public @interface AgeConstraint {
    
    
    String message() default "Invalid age";
    Class<?>[] groups() default {
    
    };
    Class<? extends Payload>[] payload() default {
    
    };
}

Finalmente, aplique esta anotación personalizada a las propiedades que deben validarse:

public class UserDto {
    
    

    @NotNull
    @NotBlank
    private String username;

    @AgeConstraint
    private Integer age;

    // ...其他属性和方法
}

Resumir

@ValidLas anotaciones son una herramienta importante en el marco Spring para la validación y verificación de datos. Combinado con otras anotaciones de validación y validadores personalizados, puede

Valide fácilmente los datos ingresados ​​por el usuario, mejorando la estabilidad y seguridad de la aplicación. Al agregar anotaciones a los parámetros del método o a los valores de retorno del método @Valid, puede garantizar la validez de los datos y generar los mensajes de error correspondientes cuando los datos no son válidos, proporcionando así una mejor experiencia de usuario e integridad de los datos.

Supongo que te gusta

Origin blog.csdn.net/weixin_42279822/article/details/132188717
Recomendado
Clasificación