国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java Validation Api如何實(shí)現(xiàn)自定義注解

瀏覽:3日期:2022-08-25 13:28:10

背景

官方提供的注解多數(shù)可以解決現(xiàn)實(shí)業(yè)務(wù)場(chǎng)景中基本業(yè)務(wù)校驗(yàn),但有些特殊場(chǎng)景因業(yè)務(wù)的復(fù)雜性,也還是需要在入口處對(duì)入?yún)⑦M(jìn)行各種角度的校驗(yàn),以求簡(jiǎn)化業(yè)務(wù)層的處理,降低業(yè)務(wù)處理復(fù)雜性與方法入口的強(qiáng)約束性。 以上背景,下面就舉個(gè)簡(jiǎn)單Demo進(jìn)行自定義注解校驗(yàn)的實(shí)現(xiàn)。

注解定義類

import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * @author wpp * @date 2020/8/22 14:30 */@Target({ElementType.FIELD, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = PhoneCustomizeValidator.class)public @interface CustomizeValidator { String message() default '不是國(guó)內(nèi)手機(jī)號(hào)'; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {};}

注解方法處理類

import cn.hutool.core.util.StrUtil;import javax.validation.ConstraintValidator;import javax.validation.ConstraintValidatorContext;import java.util.regex.Pattern;/** * @author wpp * @date 2020/8/22 14:33 */public class PhoneCustomizeValidator implements ConstraintValidator<CustomizeValidator, String> { private String phoneRegex = '^(16[0-9]|19[0-9]|13[0-9]|15[012356789]|17[0-9]|18[0-9]|14[0-9])[0-9]{8}$'; private Pattern phonePattern = Pattern.compile(phoneRegex); @Override public void initialize(CustomizeValidator constraintAnnotation) { } @Override public boolean isValid(String value, ConstraintValidatorContext context) { if (StrUtil.isBlank(value)) { return Boolean.FALSE; } return phonePattern.matcher(value).matches(); }}

使用方式

import io.swagger.annotations.ApiModelProperty;import lombok.Builder;import lombok.Data;import org.hibernate.validator.constraints.Length;/** * @author wpp * @date 2020/8/22 14:49 */@Data@Builderpublic class CustomizeDTO { @ApiModelProperty(name = 'phone', value = '手機(jī)號(hào)碼') @Length(max = 13) private String phone;}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 涞水县| 西贡区| 裕民县| 阳城县| 温宿县| 宁海县| 阳城县| 彩票| 鄂伦春自治旗| 安多县| 惠州市| 旬邑县| 黎城县| 华阴市| 城口县| 蚌埠市| 北辰区| 得荣县| 徐州市| 南华县| 漳平市| 镇原县| 吉安市| 永平县| 东兰县| 盐津县| 汉中市| 崇信县| 盘锦市| 新龙县| 巴青县| 巫山县| 彭水| 新野县| 湖南省| 舒兰市| 柳江县| 息烽县| 周至县| 满洲里市| 开化县|