这是问题here的后续内容。如何将@Valid添加到局部变量?

这是来自AuthorizationServer类的代码:

@NotBlank
private String authorizationServerId;

@Property
@Indexed(unique = true)
@NotBlank
private String authorizationUrl;

@Property(policy = PojomaticPolicy.TO_STRING)
@NotBlank
private String clientAuthorizationUrl;

@NotBlank
private String deviceRootCert;


这是控制器:

byte[] bytes = IOUtils.toByteArray(request.getInputStream());
        String signature = authorization.split(":")[1];

        ObjectMapper mapper = objectMapper();
        AuthorizationServer authorizationServer = mapper.readValue(bytes,
        AuthorizationServer.class);


如何针对authorizationServer类中声明的注释验证AuthorizationServer

当我尝试

@Valid
AuthorizationServer authorizationServer = mapper.readValue(bytes, AuthorizationServer.class);


我收到错误@Valid not applicable to local variable

最佳答案

我认为例外说明了一切。 Bean验证不允许验证局部变量。都是通过属性验证来验证类状态,也可以执行方法验证。没有诸如局部变量验证之类的东西。

09-27 09:13