搜索
您的当前位置:首页正文

开发经验总结

来源:吉趣旅游网

一、validation的使用

引入依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

采用注解校验

分组校验

(1)定义一个标识接口

public interface Add {}

(2)在校验注解指定分组

@Null(groups = Add.class)

(3)使用Validated修饰实体类

@Validated(Add.class)

注意:当使用分组校验时,修饰字段的注解都要加分组,否则其他字段校验不生效,它只会在Validated修饰

 自定义校验注解

(1)编写一个自定义注解

@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(
        validatedBy = {ShowConstraintValidator.class}//可以指定多个校验器
)
public @interface Show {
    //默认消息提示,需要在resources目录下新增ValidationMessages.properties配置
    String message() default "{com.mall.common.valid.Show.message}";

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

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

    int[] vals() default {};

}

(2)在自定义一个校验器

public class ShowConstraintValidator implements ConstraintValidator<Show,Integer> {
    @Override
    public void initialize(Show constraintAnnotation) {
       //初始化参数
    }

    @Override
    public boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {
        //todo 校验逻辑判断
        return true;
    }
}
com.mall.common.valid.Show.message=test

二、限流

使用redis的zset实现业务限流。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top