Java自定義註解

package com.cloudwing.dfs.common.validation.constraints;
import org.apache.commons.lang.StringUtils;
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * Create by cjf on 2018/9/20.
 */
@Documented
@Constraint(validatedBy = ParamValidate.ValidStringChecker.class)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface ParamValidate {
    String message() default "";

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

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

    /**
     * 只允許出現的字符
     * @return
     */
    String[] limitStr() default {""};

    class ValidStringChecker implements ConstraintValidator<ParamValidate,String> {
        String[] list;

        @Override
        public void initialize(ParamValidate arg0) {
            list = arg0.limitStr();
        }

        @Override
        public boolean isValid(String strValue, ConstraintValidatorContext context) {
            if(!StringUtils.isEmpty(strValue)) {
                for (String str : list) {
                    if (str.equals(strValue)) {
                        return true;
                    }
                }

                return false;
            }
            return false;
        }

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章