Почему конструктор initialize() внутри ConstraintValidatorContext запускается только в первый раз?
У меня проблема из-за обычая ConstraintValidatorContext
initialize()
вызывается в первый раз, только когда вызывается этот пользовательский инжект, и после этого он запускает метод 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
каждый раз, когда я это называю?
Спасибо,