首页 > 解决方案 > 为类成员扩展 Spring Bean 验证

问题描述

我有一个 spring boot 应用程序,我正在使用spring-boot-starter-validation依赖项来验证 java bean。

我的控制器代码如下

@PostMapping("/testMessage")
    ResponseEntity<String> testMethod(@Valid @RequestBody InternalMsg internalMsg) {
        return ResponseEntity.ok("Valid Message");
    }

内部消息类

public class InternalMsg implements Serializable {
    @NotNull(message = "Msg Num is a required field")
    private String msgNumber;
    @NotNull(message = "Activity Name is a required field")
    private String activityName;
    private MsgDetails msgDetails;
}

InternalMsg 上提到的约束工作正常。但是在 MsgDetails 类上指定的约束不起作用。

MsgDetails 类

public class MsgDetails {
    @NotNull(message = "Message Source Name should not be null")
    private String msgSourceName;
    @NotBlank(message = "Message Source ID should not be empty")
    private String msgSourceId;
}

是否有任何选项可以扩展 InternalMsg 类的类成员的验证?

标签: javaspringspring-bootspring-boot-starter

解决方案


@Valid也将注释添加到类中的msgDetails字段InternalMsg

public class InternalMsg implements Serializable {
    @NotNull(message = "Msg Num is a required field")
    private String msgNumber;
    @NotNull(message = "Activity Name is a required field")
    private String activityName;

    @Valid // << ----
    private MsgDetails msgDetails;
}

推荐阅读