有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以创建SpringMVC自定义验证注释,而无需链接到验证程序实现吗

我有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 {};
}

以及我在单独的公共项目中使用它的DTO。我将这个项目包括到另一个SpringBoot项目中,我计划为这个注释提供真正的验证器实现。这个注释是用@Constraint注释的,在这里我需要通过验证器实现(我不能像前面描述的那样完成)

我的问题是如何在没有实际实现的情况下创建这个验证器注释,然后将其添加到另一个项目中


共 (1) 个答案

  1. # 1 楼答案

    如果它是一个复杂的验证器,你就不能这么做——只有通过验证器的实现。 但是,如果注释是聚合器或其他标准验证器,则可以指定它们,而不添加实现

    例如,注释应该验证电子邮件,而不是空白:

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