请求参数验证(3)-自定义验证

一、在get方法上面加入自定义的注解

@OnlyOne(message="")
可以加message覆盖 default设置的信息
1 @OnlyOne()
2     public String getAppId() {
3         return appId;
4     }

二、写自定义接口

@Target({ElementType.METHOD, ElementType.TYPE, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = { OnlyOneValidator.class })
public @interface OnlyOne {
    String message() default  "appid is non-uniqueness ";   //必须的属性
    Class<?>[] groups() default {};  //必须的属性
    Class<? extends Payload>[] payload() default {}; //必须的属性
}

三、写验证接口的实现类

 1 import com.lion.service.TokenService;
 2 import org.springframework.beans.factory.annotation.Autowired;
 3 
 4 import javax.validation.ConstraintValidator;
 5 import javax.validation.ConstraintValidatorContext;
 6 
 7 /**
 8  * Created by Administrator on 2016/8/15.
 9  */
10 public class OnlyOneValidator implements ConstraintValidator<OnlyOne,String> {
11     @Autowired
12     TokenService tokenService;
13     public void initialize(OnlyOne onlyOne) {
14 
15     }
16 
17     public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
18 
19         return tokenService.isDistinct(s);
20     }
21 }

 

posted @ 2017-02-17 11:30  凌云之狮  阅读(571)  评论(0编辑  收藏  举报