Skip to content

Instantly share code, notes, and snippets.

@moods445
Last active June 22, 2019 07:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moods445/52b7269aebb7aa94ef6cfe3a6001fb66 to your computer and use it in GitHub Desktop.
Save moods445/52b7269aebb7aa94ef6cfe3a6001fb66 to your computer and use it in GitHub Desktop.
Bean validation #Java
package cn.internetware.yancloud.dataretention.schedule.constraints;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
/**
*
*/
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = HttpMethodValidator.class)
public @interface HttpMethod {
String message() default "Must be one of GET,POST,PUT,DELETE,HEAD,CONNECT,OPTIONS,TRACE,PATCH";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
package cn.internetware.yancloud.dataretention.schedule.constraints;
import org.apache.commons.lang3.StringUtils;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.Arrays;
import java.util.List;
public class HttpMethodValidator implements ConstraintValidator<HttpMethod, String> {
private static final List<String> allMethod;
static {
final String[] method = {
"GET",
"POST",
"PUT",
"DELETE",
"HEAD",
"CONNECT",
"OPTIONS",
"TRACE",
"PATCH"
};
allMethod = Arrays.asList(method);
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
return StringUtils.isNotBlank(value) && allMethod.contains(value.toUpperCase());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment