@Valid 和 @Validated 区别和用法

用法:                                                                                                                 

public interface UserService {
    public  UserModel get2( Integer uuid) ;
}
@Validated      //① 告诉MethodValidationPostProcessor此Bean需要开启方法级别验证支持
@Component
public class UserServiceImpl implement UserService  {
    public @NotNull UserModel get2(@NotNull @Min(value = 1) Integer uuid) { //②声明前置条件/后置条件
        //获取 User Model
        UserModel user = new UserModel(); //此处应该从数据库获取
        if(uuid > 100) {//方便后置添加的判断(此处假设传入的uuid>100 则返回null)
            return null;
        }
        return user;
    }
}

<!--注册方法验证的后处理器-->
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>

@Valid 和 @Validated 的区别

       在spring 项目中,这两个注解的功能比较类似,都可以实现对参数的校验功能,但是两者在用法上还有一些区别;

       1 使用位置

       @Validated 使用位置一般在需要验证方法的类上,表示该类下所有需要参数校验的方法,进行参数校验,使用bean上;

       @Valid 一般使用在方法参数实体类参数前面,校验规则对应为该参数修饰的实体类各个属性字段上;

@RestController
@Validated
public class BaseCommandController{
    @PostMapping("/****")
    public void  BasePostMapping(@Valid Query query){
       return ;
    }
}


@Data
Class Query{

    @Min(value =2, message = "最小值id为2")
    private Integer id;

    @Size( min = 1, max = 8, message = "名字长度范围为1~8")
    private String name; 
}

       当参数较多的时候,一般将参数封装为一个request类,当参数较少的时候,也可以直接进行方法前使用校验限注释;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值