2016-10-04 3 views
0

Ich validiere eine Eingabeklasse mit Java Validierung API und Hibernate Validator. Ich habe einige benutzerdefinierte Annotation für einige Business-Validierung erstellt und ich verwende diese Annotation für die Eingabeklasse. unten ist ein Beispiel für eine solche Annotation Validator -So erhalten Sie einige allgemeine Daten in einem benutzerdefinierten ConstraintValidator

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

public class DBColumnConstraintValidator implements ConstraintValidator<DatabaseColumnConstraint, Object> { 

private DBColumnConstraintValidator databaseColumnConstraint; 

private final List<DatabaseConstraintValidationStep> steps = new ArrayList<DatabaseConstraintValidationStep>(); 

@Override 
public void initialize(DBColumnConstraintValidator databaseColumnConstraint) { 



} 

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

    //Validation logic 


} 

}

Ich möchte einige Daten für meine Validierungslogik innerhalb isValid() Methode verwenden und diese Daten ist üblich und wird auch von einigen anderen Prüfklassen verwendet werden.

Gibt es eine Möglichkeit, diese allgemeinen Daten für die isValid() -Methode festzulegen oder zu aktivieren?

Antwort

0

Wenn Sie CDI oder Spring verwenden, können Sie die Dependency-Injektion (z. B. @Inject) in Ihrer Constraint-Validiererimplementierung verwenden, um den gewünschten kontextabhängigen Service oder die benötigten Daten zu erhalten.

Verwandte Themen