验证注解,自定义校验注解

博客介绍了session的token时间、并发数量及集群管理相关内容,重点列举了hibernate Validator的多种注解,如@NotBlank、@NotNull等及其作用。还详细说明了自己编写注解的步骤,包括创建@interctor类并设置@Target、@Retention等,以及编写具体实现类。

session的token时间并发的session数量,集群如何管理

@NotBlank @valid

BindingResult

 

public List<User> getUser(@RequestParam String username, BindingResult Errors) {
    List<User> list = new ArrayList<>();
    list.add(new User());
    list.add(new User());
    list.add(new User());
    if(Errors.hasErrors()){
        Errors.getAllErrors().stream().forEach(error -> System.out.println(error.getDefaultMessage()));
    }
    return list;
}

hibernate Validator

@notnull值不能为空  @Pattern(regex=字符串必须匹配正则表达式)

@Null值必须为空 @size(min= ,max=)集合的元素数量必须在min和max直接

@CreditCarNumber()字符串必须是信用卡号,按美国标准

@Email

@Length(min= max=)

@NOtBlank字符串必须有字符

@Range(min= max = )数字必须大于或等于min小于等于max

@safeHtml字符串必须是安全的html

@URL合法的url

@AssertFalse值必须为false

@ASsertTrue值必须为True

@DecimalMax自必须

@Digits integer指定整数部分的最大长度,fraction指定小数部分的最大长度

@future未来时间

@Past过去时间

@Max

@Min

在controller中必须加@Valid

public String someHanler(@Valid User user)

自己编写注解

 1.写一个@interctor类@Target(表示在哪些级别运行,如字段,方法)@Retention(表示在啥条件运行如Runtime)@Constranint具体实现类

 

@Target({ElementType.METHOD,ElementType.FIELD,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = MyConstrationValidate.class)
public @interface Myconstra {
    String message() default "{不能为空}";

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

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

2.编写具体实现类

public class MyConstrationValidate implements ConstraintValidator<Myconstra, Object> {
    @Autowired
    private HelloService helloService;

    @Override
    public void initialize(Myconstra myconst) {
        System.out.println(myconst);
    }

    //校验逻辑
    @Override
    public boolean isValid(Object o, ConstraintValidatorContext constraintValidatorContext) {
        helloService.greeting("tom");
        System.out.println("isvalid");
        return false;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值