我想知道哪些是在注释中传递静态灵活元数据的可能性,而不需要在需要新元数据时修改它们。
在我的用例中,我使用BeanValidation注释,因此无法修改BeanValidation注释。
但BeanValidation在每个类中都提供了一个字段:
Class<? extends Payload>[] payload() default {};
在某些示例中,此Payload似乎用于提供传递该元数据的灵活方式。但在示例中,此元数据通常“不灵活”,例如,有效负载是日志级别严重性:blog article。
当我验证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;
}
它工作正常,但我想知道是否有一种比在额外的Class Payload上使用注释更简单的方法。
有什么想法吗?