あなたが休止状態バリ例えば のようなJSR 303 Beanのバリデータの実装を試してみましたそれから私は、SCOPE =プロトタイプを持っているPhoneValidatorの@Component実装を持つ
@Bean
LocalValidatorFactoryBean configurationPropertiesValidator(ApplicationContext context, AutowireCapableBeanFactory factory) {
LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean();
factoryBean.setConstraintValidatorFactory(factory(context, factory));
return factoryBean;
}
private ConstraintValidatorFactory factory(final ApplicationContext context, final AutowireCapableBeanFactory factory) {
return new ConstraintValidatorFactory() {
@Override
public <T extends ConstraintValidator<?, ?>> T getInstance(Class<T> key) {
if (RestValidator.class.isAssignableFrom(key)) {
return context.getBean(key);
} else {
return factory.createBean(key);
}
}
@Override
public void releaseInstance(ConstraintValidator<?, ?> instance) {
if (!(instance instanceof RestValidator<?, ?>)) {
factory.destroyBean(instance);
}
}
};
}
@Bean
WebMvcConfigurerAdapter webMvcConfigurerAdapter(final LocalValidatorFactoryBean validatorFactoryBean) {
return new WebMvcConfigurerAdapter() { // Adds the validator to MVC
@Override
public Validator getValidator() {
return validatorFactoryBean;
}
};
}
:
public interface RestValidator<A extends Annotation, T> extends ConstraintValidator<A, T>
public interface PhoneValidator extends RestValidator<PhoneNumber, String>
@Target(FIELD)
@Retention(RUNTIME)
@Constraint(validatedBy = PhoneValidator.class) // This usually doesnt work since its a interface
public @interface PhoneNumber {
// JSR-303 required fields (payload, message, group)
}
public class Person {
@PhoneNumber
private String phoneNumber;
}
MavenのモジュールB:ここhttp://www.codejava.net/frameworks/spring/spring-mvc-form-validation-example-with-bean-validation-api
ええ、私が理解している限り、JSR-303の方法を使用する場合、Spring管理Beanは使用できません。例えば。リポジトリをバリデーターに挿入する – LG87
できます。注釈を検証するDTOに追加するには、例を見てください。 –
この例ではカスタムアノテーションは提供されていません。私が見る限り、JSR-303注釈を使用して検証を行います。しかし、追加の注釈を作成したい場合は、それを行うことができますが、Springバリデータではなく、JSR-303バリデータを作成します。 例:http://goldenpackagebyanuj.blogspot.no/2013/05/custom-jsr-303-validation-using-constraintValidator.html しかし、そのカスタムにリポジトリを挿入する場合はどうすればよいですかConstraintValidator? – LG87