Spring is using the default validator factory provided by hibernate factory. However, I do not want to include an Expression Language dependency.
This answer recommends avoiding using the default factory by using this code:
import javax.validation.Validation;
import javax.validation.Validator;
import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator;
private static final Validator VALIDATOR =
Validation.byDefaultProvider()
.configure()
.messageInterpolator(new ParameterMessageInterpolator())
.buildValidatorFactory()
.getValidator();
That works well when I have a reference to VALIDATOR, but I'm not sure how to tell spring to use the above instead of the OptionalValidatorFactoryBean
which extends LocalValidatorFactoryBean
that I think is filled in with the validator from Validation.buildDefaultValidatorFactory()
based on the javadoc from LocalValidatorFactoryBean
In summary, how do I replace spring's default Validation.buildDefaultValidatorFactory()
with Validation.byDefaultProvider().configure().messageInterpolator(new ParameterMessageInterpolator()).buildValidatorFactory().getValidator()
so that I can avoid the dependency on Expression Language.