spring 自定义注解中的默认值不起作用

a5g8bdjr  于 2022-11-21  发布在  Spring
关注(0)|答案(1)|浏览(200)

我是JAVA新手。我在SPRING中为自定义验证创建了一个新的自定义注解,但当我运行应用程序时,我看到以下错误:

The annotation @CourseCode must define the attribute groups
  The annotation @CourseCode must define the attribute message
  The annotation @CourseCode must define the attribute payload
  The annotation @CourseCode must define the attribute value

下面是我的实现:

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import javax.validation.Constraint;
import javax.validation.Payload;

@Constraint(validatedBy = CourseCodeConstraintValidator.class)
@Target({ ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface CourseCode {
    public String value() default "course-";

    public String message() default "must start with course-";

    public Class<?>[] groups() default {};

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

}

这是我的用法

@CourseCode
    private String courseCode;

这是我的课程代码约束验证器。

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class CourseCodeConstraintValidator implements ConstraintValidator<CourseCode, String>{

    private String coursePrefix;

    @Override
    public void initialize(CourseCode courseCode) {
        coursePrefix = courseCode.value();
    }

    @Override
    public boolean isValid(String code, ConstraintValidatorContext constraintValidatorContext) {

        boolean result = code.startsWith(coursePrefix);

        return result;
    }
}

我希望使用我在类中定义的默认值。

6jygbczu

6jygbczu1#

经过几个小时的研究,我放弃了几天。现在我回来了,突然发现,在重启PC后切换Eclipse的视角已经达到了效果,现在它正像我预期的那样工作。感谢所有试图帮助我的人。

相关问题