第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring注解方法目的

Spring注解方法目的

FFIVE 2023-04-13 15:03:45
我為 spring 項目編寫了簡單的驗證注釋。問題是我不明白某些方法的目的。這是我的注釋:@Constraint(validatedBy = PostCodeValidator.class)@Target({ElementType.METHOD, ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public @interface PostCode {    public String value() default "LUV";    public String message() default "must start with LUV";    public Class<?>[] groups() default {};    public Class<? extends Payload>[] payload() default {};}誰能解釋我groups()和payload()方法的目的?如果解釋盡可能簡單,我將不勝感激。謝謝。
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經(jīng)驗 獲得超5個贊

1) 在Bean Validation Api 中,組用于選擇bean 的哪些字段將被驗證。示例:具有地址屬性的用戶。


public class User {

    @NotNull(groups = GroupUser.class)

    String firstname;

    @NotNull(groups = GroupAddress.class)

    String street;

    @NotNull(groups = GroupAddress.class)

    String city;

}

要驗證整個用戶,您可以執(zhí)行以下操作:


Set<ConstraintViolation<User>> constraintViolations = validator.validate(user, GroupUser.class, GroupAddress.class);

要僅驗證沒有地址部分的用戶信息,您可以使用:


Set<ConstraintViolation<User>> constraintViolations = validator.validate(user, GroupUserName.class);

2) 有效載荷用于管理錯誤的嚴重程度。您可以實現(xiàn) Payload 接口:


public class Severity {

    public static class Info implements Payload {}

    public static class Error implements Payload {}

}

如果您使用以下方式注釋名字字段:


@NotNull(payload = {Severity.Error.class})

然后在驗證之后,您可以按嚴重性添加一些邏輯:


for (ConstraintViolation<TestBean> violation : constraintViolations) {

    Set<Class<? extends Payload>> payloads = violation.getConstraintDescriptor().getPayload();

    for (Class<? extends Payload> payload : payloads) {

        if (payload == Severity.Error.class) {

            // logic here   

        }

    }

}


查看完整回答
反對 回復(fù) 2023-04-13
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號