我有 Spring Boot 自定义约束注释:
@Documented
@Constraint(validatedBy = ?)
@Target( { ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomValidation {
String message() default "";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
还有我在单独的公共(public)项目中使用它的 dtos。我将此项目包含到另一个 Spring Boot 项目中,我计划在其中为此注释提供真正的 validator 实现。此注释用 @Constraint
进行注释,我需要在其中传递 validator 实现(并且我不能像之前描述的那样执行此操作)。
我的问题是如何在没有实际实现的情况下创建此 validator 注释并稍后将其添加到另一个项目中。
最佳答案
如果它是一个复杂的 validator ,则无法做到这一点 - 只能通过 validator 的实现来实现。 但如果您的注释是其他标准 validator 的聚合器,您可以指定它们并且不添加实现。
例如,注释应验证电子邮件而不是空白:
@Documented
@Constraint(validatedBy = {})
@Retention(RetentionPolicy.RUNTIME)
@Email(message = "{email.invalid}")
@NotBlank(message = "{email.blank}")
@Target({ElementType.PARAMETER, ElementType.FIELD})
@Size(max = 128, message = "{email.oversize}")
public @interface EmailPattern {
String message() default "Invalid, empty or long email";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
关于java - 我可以创建 spring mvc 自定义验证注释而不链接到 validator 实现吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59768017/