All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.hugh.aop.constraints.validator.OrderValidator Maven / Gradle / Ivy

The newest version!
package com.github.hugh.aop.constraints.validator;

import com.github.hugh.aop.constraints.Order;
import com.google.common.collect.Lists;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.List;

/**
 * order 字段校验
 * 

* 注: 当项目启动后,会(懒加载)创建ConstraintValidator实例,在创建实例后会初始化调 * 用{@link ConstraintValidator#initialize}方法。 * 所以, 只有在第一次请求时,会走initialize方法, 后面的请求是不会走initialize方法的。 *

*

* 注: (懒加载)创建ConstraintValidator实例时, 会走缓存; 如果缓存中有,则直接使用相 * 同的ConstraintValidator实例; 如果缓存中没有,那么会创建新的ConstraintValidator实例。 * 由于缓存的key是能唯一定位的, 且 ConstraintValidator的实例属性只有在 * {@link ConstraintValidator#initialize}方法中才会写;在{@link ConstraintValidator#isValid} * 方法中只是读。 * 所以不用担心线程安全问题。 *

* * @author hugh * @since 1.1.0 */ public class OrderValidator implements ConstraintValidator { private List valueList; @Override public void initialize(Order order) { valueList = Lists.newArrayList(); for (String val : order.accepts()) { valueList.add(val.toUpperCase()); } } @Override public boolean isValid(String string, ConstraintValidatorContext constraintValidatorContext) { // 不存在返回false,错误抛出 return valueList.contains(string.toUpperCase()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy