下面列出了怎么用javax.validation.ConstraintValidatorFactory的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected void configure() {
final MethodInterceptor interceptor = new ValidationInterceptor();
bindInterceptor(Matchers.any(), Matchers.annotatedWith(Validate.class), interceptor);
requestInjection(interceptor);
bind(ConstraintValidatorFactory.class).to(GuiceConstraintValidatorFactory.class);
}
@Provides
@Singleton
ValidatorFactory validatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(HibernateValidator.class.getClassLoader());
ValidatorFactory factory = Validation.byDefaultProvider().configure()
.constraintValidatorFactory(constraintValidatorFactory)
.parameterNameProvider(new AopAwareParanamerParameterNameProvider())
.traversableResolver(new AlwaysTraversableResolver())
.messageInterpolator(new ParameterMessageInterpolator())
.buildValidatorFactory();
// FIXME: Install custom MessageInterpolator that can properly find/merge ValidationMessages.properties for bundles
// exercise interpolator to preload elements (avoids issues later when TCCL might be different)
factory.getValidator().validate(new Object()
{
// minimal token message
@NotNull(message = "{org.sonatype.nexus.validation.constraint.notnull}")
String empty;
});
return factory;
}
finally {
Thread.currentThread().setContextClassLoader(tccl);
}
}
@Override
public boolean configure(FeatureContext context) {
context.register(new AbstractBinder() {
@Override
protected void configure() {
bindFactory(ValidatorFactory.class).to(Validator.class).in(Singleton.class);
bind(InjectingConfiguredValidator.class).to(ConfiguredValidator.class).in(Singleton.class);
bind(new InjectingConstraintValidatorFactory(injector)).to(ConstraintValidatorFactory.class);
}
});
return true;
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
Assert.notNull(this.validatorFactory, "No target ValidatorFactory set");
return this.validatorFactory.getConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
Assert.notNull(this.validatorFactory, "No target ValidatorFactory set");
return this.validatorFactory.getConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
Assert.notNull(this.validatorFactory, "No target ValidatorFactory set");
return this.validatorFactory.getConstraintValidatorFactory();
}
/**
* {@inheritDoc}
*/
public ConstraintValidatorFactory getConstraintValidatorFactory()
{
return validatorFactory.getConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
Assert.notNull(this.validatorFactory, "No target ValidatorFactory set");
return this.validatorFactory.getConstraintValidatorFactory();
}
@Inject
public ValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
this.constraintValidatorFactory = constraintValidatorFactory;
}
public ConstraintValidatorFactory getConstraintValidatorFactory() {
return constraintValidatorFactory;
}
public void setConstraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
this.constraintValidatorFactory = constraintValidatorFactory;
}
/**
* {@inheritDoc}
*/
public ConstraintValidatorFactory getConstraintValidatorFactory()
{
return validatorFactory.getConstraintValidatorFactory();
}
/**
* {@inheritDoc}
*/
public ConstraintValidatorFactory getConstraintValidatorFactory()
{
return validatorFactory.getConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
return factory().getConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
return factory().getConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getDefaultConstraintValidatorFactory() {
return delegate.getDefaultConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
return delegate().getConstraintValidatorFactory();
}
@Override
public ConstraintValidatorFactory getDefaultConstraintValidatorFactory() {
return null;
}
@Override
public ConstraintValidatorFactory getConstraintValidatorFactory() {
return null;
}
@Override
public ValidatorContext constraintValidatorFactory(final ConstraintValidatorFactory factory) {
return null;
}
/**
* Specify a custom ConstraintValidatorFactory to use for this ValidatorFactory.
* <p>Default is a {@link SpringConstraintValidatorFactory}, delegating to the
* containing ApplicationContext for creating autowired ConstraintValidator instances.
*/
public void setConstraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
this.constraintValidatorFactory = constraintValidatorFactory;
}
/**
* Specify a custom ConstraintValidatorFactory to use for this ValidatorFactory.
* <p>Default is a {@link SpringConstraintValidatorFactory}, delegating to the
* containing ApplicationContext for creating autowired ConstraintValidator instances.
*/
public void setConstraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
this.constraintValidatorFactory = constraintValidatorFactory;
}
/**
* Specify a custom ConstraintValidatorFactory to use for this ValidatorFactory.
* <p>Default is a {@link SpringConstraintValidatorFactory}, delegating to the
* containing ApplicationContext for creating autowired ConstraintValidator instances.
*/
public void setConstraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
this.constraintValidatorFactory = constraintValidatorFactory;
}
/**
* Specify a custom ConstraintValidatorFactory to use for this ValidatorFactory.
* <p>Default is a {@link SpringConstraintValidatorFactory}, delegating to the
* containing ApplicationContext for creating autowired ConstraintValidator instances.
*/
public void setConstraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
this.constraintValidatorFactory = constraintValidatorFactory;
}