请求参数验证(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 }