`
cqh520llr
  • 浏览: 510380 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

springboot Validated和valid区别

 
阅读更多
https://blog.csdn.net/fly_duck/article/details/107849845
https://www.cnblogs.com/6b7b5fc3/p/13497867.html


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

/**
 * 状态标记校验器
 * Created by macro on 2018/4/26.
 */
public class FlagValidatorClass implements ConstraintValidator<FlagValidator,Integer> {
    private String[] values;
    @Override
    public void initialize(FlagValidator flagValidator) {
        this.values = flagValidator.value();
    }

    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext constraintValidatorContext) {
        boolean isValid = false;
        if(value==null){
            //当状态为空时使用默认值
            return true;
        }
        for(int i=0;i<values.length;i++){
            if(values[i].equals(String.valueOf(value))){
                isValid = true;
                break;
            }
        }
        return isValid;
    }
}





import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 用户验证状态是否在指定范围内的注解
 * Created by macro on 2018/4/26.
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.PARAMETER})
@Constraint(validatedBy = FlagValidatorClass.class)
public @interface FlagValidator {
    String[] value() default {};

    String message() default "flag is not found";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}




@ApiModelProperty("是否在导航栏显示")
    @FlagValidator(value = {"0","1"},message = "状态只能为0或1")
    private Integer navStatus;



@ControllerAdvice
public class GlobalExceptionHandler {

    @ResponseBody
    @ExceptionHandler(value = ApiException.class)
    public CommonResult handle(ApiException e) {
        if (e.getErrorCode() != null) {
            return CommonResult.failed(e.getErrorCode());
        }
        return CommonResult.failed(e.getMessage());
    }
}

分享到:
评论

相关推荐

    Springboot参数校验@Validated和@Valid区别源码

    Springboot参数校验@Validated和@Valid区别源码

    springboot validator枚举值校验功能实现

    @Constraint(validatedBy = EnumValue.Validator.class) public @interface EnumValue { String message() default "{custom.value.invalid}"; Class[] groups() default {}; Class[] payload() default {}; ...

    Spring Boot技术知识点:如何使用@Valid注解来对邮箱字段进行数据校验

    3. **使用@Validated与@Valid的区别**: 在Spring Boot中,我们可能会看到`@Validated`和`@Valid`两个注解。`@Validated`是Spring提供的,用于支持JSR 303/349,而`@Valid`是Java EE的一部分。在大多数情况下,两者...

    SpringBoot_113实用知识库分享

    SpringBoot 提供了多种方式来实现参数校验,包括使用 @Valid 注解、使用 @Validated 注解、使用 Hibernate Validator 等。 5. SpringBoot Validation 参数校验详解自定义注解规则和分组校验 SpringBoot 提供了多种...

    mars-validated:简单好用的 springmvc springboot springcloud dubbo 参数校验

    mars-validated springmvc springboot springcloud dubbo 参数校验简单好用的 springmvc springboot springcloud dubbo 参数校验validated 是 控制 springmvc springboot 的验证框架。此框架基于spring 开发。版本...

    【java框架】SpringBoot(9) -- Springboot中如何优雅的进行字段校验(csdn)————.pdf

    两者基本相似,但`@Validated`是Spring提供的,支持分组校验和验证顺序,而`@Valid`是JDK自带的。在示例中,我们可以这样写Controller方法: ```java @PostMapping public ResponseVO createDataSet(@Valid @...

    my_springboot_01.rar

    本文将深入探讨`@Valid`和`@Validated`在Spring Boot中的用法及其区别。 首先,`@Valid`是Java Bean Validation框架(如Hibernate Validator)提供的一个注解,用于对Java对象的属性进行验证。当我们在控制器方法的...

    springboot-validate

    `SpringBoot validate`指的是Spring Boot集成Hibernate Validator进行参数验证的功能。Hibernate Validator是JSR-303/JSR-349标准的参考实现,提供了一种在Java应用中进行数据校验的优雅方式。 ** Hibernate ...

    SpringBoot服务端数据校验过程详解

    * @Validated:是@Valid 的一次封装,是 Spring 提供的校验机制使用 * @Null:被注释的元素必须为 null * @NotNull:被注释的元素必须不为 null * @Pattern(value):被注释的元素必须符合指定的正则表达式 * @Size...

    SpringBoot全局异常与数据校验的方法

    然后,我们可以在控制器的方法参数上使用@Validated或@Valid注解,以触发数据校验。如果校验失败,SpringBoot默认会返回一个400 Bad Request的HTTP响应,包含所有的校验错误信息。 在实际应用中,我们可能希望...

    SpringBoot 使用hibernate validator校验

    SpringBoot 使用 Hibernate Validator 校验 Hibernate Validator 是 Java 中的一个验证框架,提供了许多有用的 注解来验证对象的属性。SpringBoot 项目中可以使用 Hibernate Validator 来实现数据验证。本文将详细...

    Spring Boot中Controller间的调用

    Assert.isTrue(bean instanceof DocController, "'docController' is not a valid type."); DocController doc = (DocController) bean; String result = doc.doSomething(); return result; } } ``` 这种方式...

    Springboot 自定义校验代码实例

    `@Target`和`@Retention`分别定义了注解的应用目标(如方法、字段等)和保留策略(运行时)。此外,注解还包含了一些基本的参数,如错误消息、起始字符串、验证组和负载。 ```java @Documented @Constraint...

    dubbo-zookeeper:RPC,dubbo-admin,zookeeper

    2.3.0版本以上需要引入,不然@Valid和@Validated都导进来 &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-validation &lt;groupId&gt;org.glassfish &lt;artifactId&gt;jakarta.el&lt;/artif

    Springboot集成JSR303参数校验的方法实现

    @Constraint(validatedBy={IsRightValidator.class}) public @interface IsRight { boolean right() default true; String message() default "这是验证失败的提示信息"; Class[] groups() default {}; Class[] ...

    如何使用spring-boot 写出简洁而优雅的restful 接口

    3. 控制器处理:在Controller方法中,使用`@Validated`注解标记类,`@Valid`注解标记需要校验的参数。这样,当请求到达时,Spring会自动执行验证,如果数据不符合规定,将会抛出异常。 ```java @Validated @...

    spring-boot-validator.zip

    Spring Boot + Hibernate Validator + 统一异常,详见https://blog.csdn.net/z1353095373/article/details/111192838

    Spring boot进行参数校验的方法实例详解

    Spring Boot 参数校验方法实例详解 ...Spring Boot 提供了多种方法来实现参数校验,包括使用 JSR-303 Bean Validation API、自定义注解和 Validator 等。开发者可以根据实际情况选择合适的方法来实现参数校验。

    Spring中校验器(Validator)的深入讲解

    此外,还可以通过`@Constraint`注解来自定义注解,并通过`@Validated`注解在类或方法参数上使用这些自定义注解。 ### 全局异常处理器 在实际应用中,通常会结合全局异常处理器(比如使用`@ControllerAdvice`注解的...

Global site tag (gtag.js) - Google Analytics