为 class 成员扩展 Spring Bean 验证

Extend Spring Bean Validation for the class members

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

我的控制器代码如下

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

内部消息class

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 class 上指定的约束不起作用。

消息详细信息class

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 class 的 class 成员的验证?

InternalMsg class 中的 msgDetails 字段中添加 @Valid 注释:

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;
}