Почему конструктор initialize() внутри ConstraintValidatorContext запускается только в первый раз?

У меня проблема из-за обычая ConstraintValidatorContextinitialize() вызывается в первый раз, только когда вызывается этот пользовательский инжект, и после этого он запускает метод isValid only() без конструкции initialize() метод снова каждый раз!,

пример аннотации @APIAuth:

@Documented
@Constraint(validatedBy = APIAuthValidator.class)
@Target({ElementType.CONSTRUCTOR,ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface APIAuth {
    String message() default "";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}

APIAuthValidator.class

public class APIAuthValidator implements ConstraintValidator<APIAuth, String>{

    @Override
    public void initialize(APIAuth constraintAnnotation) {
        System.out.println("echo first time only");             
    }

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {

        return true;
    }
}

Пример использования внутри bean-компонента Restful Stateless Session

@Stateless
@Path("Accepted")
public class AcceptedAPI {

    @Context
    private UriInfo context;
    @Context
    private HttpServletRequest client;
    @PersistenceContext (unitName="APIPU") EntityManager EM;

    @GET
    @APIAuth
    @Produces(MediaType.TEXT_PLAIN)
    public String getIps() {
        return "Test";
    }
}

поэтому, когда я запрашиваю информацию о состоянии, он выводится на консоль echo first time only в первый раз, и когда я снова обращаюсь к лицам без гражданства, они больше ничего не отражают!

так что я думаю, что мой пользовательский инъекция Validator инициализируется и кэшируется с момента первого вызова в среде Java,

Так как я заставляю свой обычай вводить, чтобы заставить initialize каждый раз, когда я это называю?

Спасибо,

0 ответов

Другие вопросы по тегам