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()字符串必须是信用卡号,按美国标准
@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; } }