1

我想知道在注释中传递静态灵活元数据的可能性,如果需要新的元数据,则无需修改它们。

在我的用例中,我使用 BeanValidation 注释,因此我无法修改 BeanValidation 注释。

但是 BeanValidation 在每个类中都提供了一个字段:

Class<? extends Payload>[] payload() default {};

在某些示例中,此有效负载似乎用于提供一种灵活的方式来传递该元数据。但在示例中,此元数据通常“不灵活”,例如有效负载是日志级别的严重性:博客文章


当我验证 REST API 输入方法时。我必须能够在验证错误时“自定义”JSON 有效负载。我们有一个默认机制来执行此操作,它从 ConstraintViolations 创建错误 JSON 有效负载,但有时需要覆盖它。

我已经完成了以下代码:

@Data
@GreaterThan(field = "endDate", greaterThan = "startDate", strict = false, payload = EndDateMustBeGreaterThanStartDatePayload.class)
public class SomeBean {

  @Field("end_date")
  @ErrorDescription("The end date must be greater than the start date")
  public static final class EndDateMustBeGreaterThanStartDatePayload implements ApiResponseOverridePayload { };


  @NotNull
  private DateTime startDate;

  @NotNull
  @Future
  private DateTime endDate;

}

它工作正常,但我想知道是否没有比在附加类有效负载上使用注释更简单的方法。

任何想法?

4

0 回答 0