<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    JSR-303 Bean Validation

    接收數(shù)據(jù)的JAVA BEAN通常需要驗(yàn)證其中字段的正確性,如不準(zhǔn)為空,符合EMAIL格式等。
    JSR-303 Bean Validation則提供了這樣的便捷。

    只要在JAVA BEAN中需要驗(yàn)證的字段加@NotNull這種標(biāo)簽,然后在SERVISE中的輸入?yún)?shù)中加@Valid標(biāo)簽,則就激活驗(yàn)證流程。
    也可以編程的方式自己驗(yàn)證:
    @MessageEndpoint
    //@Validated
    public class MqMessageCcdValidator {
        
        private static final Logger LOGGER = LoggerFactory.getLogger(MqMessageCcdValidator.class);
        
        @Autowired
        private Validator validator;
        
        @ServiceActivator
        public MqMessage<CcdRequest> validate(/* @Valid */ Message<MqMessage<CcdRequest>> requestMessage) {
            Set<ConstraintViolation<MqMessage<CcdRequest>>> set = validator.validate(requestMessage.getPayload());
            if(CollectionUtils.isNotEmpty(set)) {
                CompositeException compositeException = new CompositeException();
                set.forEach(
                    constraintViolation -> {
                                                LOGGER.info("{}", constraintViolation);
                                                ReqInfoValidationException exception =
                                                        new ReqInfoValidationException(constraintViolation.getMessage());
                                                compositeException.addException(exception);
                                           }
                );
                throw new MessageHandlingException(requestMessage, compositeException);
            }
            
            return requestMessage.getPayload();
        }

    }

    自定義驗(yàn)證規(guī)則
    可用標(biāo)簽來做,以下為驗(yàn)證手機(jī)號(hào)的規(guī)則:
    import static java.lang.annotation.RetentionPolicy.RUNTIME;

    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.Target;

    import javax.validation.Constraint;
    import javax.validation.Payload;
    import javax.validation.ReportAsSingleViolation;
    import javax.validation.constraints.Pattern;

    @Retention(RUNTIME)
    @Target(value = { ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    @Constraint(validatedBy = {})
    @ReportAsSingleViolation
    @Pattern(regexp = "^1[3-9]\\d{9}$")
    public @interface ChinaPhone {
        String message() default "Invalid Chinese mobile No.";
        Class<?>[] groups() default {};
        Class<? extends Payload>[] payload() default {};
    }

    如果比較復(fù)雜的驗(yàn)證規(guī)則,則參見:
    https://reflectoring.io/bean-validation-with-spring-boot/#implementing-a-custom-validator

    How to use Java Bean Validation in Spring Boot
    https://nullbeans.com/how-to-use-java-bean-validation-in-spring-boot/

    Complete Guide to Validation With Spring Boot
    https://reflectoring.io/bean-validation-with-spring-boot/

    Spring JMS Validate Messages using JSR-303 Bean Validation
    https://memorynotfound.com/spring-jms-validate-messages-jsr-303-bean-validation/

    Spring REST Validation Example
    https://mkyong.com/spring-boot/spring-rest-validation-example/

    Spring Boot 整合 Bean Validation 校驗(yàn)數(shù)據(jù)

    https://blog.csdn.net/wangzhihao1994/article/details/108403732

    posted on 2021-01-28 10:35 paulwong 閱讀(335) 評(píng)論(0)  編輯  收藏 所屬分類: SPRINGSPRING INTERGRATIONSPRING BOOTBean Validation

    主站蜘蛛池模板: 国产亚洲福利在线视频| 黄色a三级三级三级免费看| 黄色三级三级三级免费看| 久久久久久免费一区二区三区 | 精品国产亚洲AV麻豆| a级毛片黄免费a级毛片| 成年轻人网站色免费看| 国产亚洲精品资在线| 国产精品高清视亚洲一区二区| 国产国产人免费人成成免视频 | 国产亚洲成人久久| 亚洲va精品中文字幕| 二区久久国产乱子伦免费精品| 成人免费视频网站www| 久久精品国产精品亚洲人人 | 久久亚洲中文字幕精品一区四 | 免费在线观看的黄色网址| 亚洲综合一区二区| 精品免费久久久久国产一区| 最近最新中文字幕完整版免费高清| 亚洲va中文字幕无码久久不卡| 亚洲AV成人一区二区三区观看 | 免费网站观看WWW在线观看| 全免费a级毛片免费**视频| 日韩精品无码区免费专区| 99久久亚洲精品无码毛片| 亚洲日韩国产精品无码av| 久久99精品免费一区二区| 最好免费观看韩国+日本| 亚洲高清视频免费| 久久久精品视频免费观看| 国产成人高清精品免费软件| 亚洲不卡1卡2卡三卡2021麻豆| 国产一区二区三区免费观在线| 成在线人永久免费视频播放| 亚洲国产美女精品久久久久| 国产成人精品免费久久久久| 国产91精品一区二区麻豆亚洲| 久久无码av亚洲精品色午夜| 久久久久国色AV免费看图片| 亚洲精品国产情侣av在线|