2017-07-14 19 views
0

JSR 303を使用してBeanの検証を行いたくないとします。 beanが@ValidとマークされているときにSpringが使用するカスタムバリデーターを実装することは可能ですか?私のカスタムバリデータはあなたがValidatorインタフェースを実装し、@Componentとして実装をマークする必要があります春のコンポーネントSpringでjavax.validation.Validアノテーションの実装を置き換える方法は?

答えて

0

なる場合

それは素晴らしいことです。次に、@InitBinderアノテーションを使用してカスタムバリデータをバインドすることができます。

@Component 
public class MyCustomValidator implements Validator 
{ 

    @Override 
    public boolean supports(Class<?> clazz) 
    { 
     // your custom logic 
    } 

    @Override 
    public void validate(Object target, Errors errors) 
    { 
     // your custom logic 
    } 
} 

アノテーションでそれをバインドするには:このような何か

@Controller 
public class MyController 
{ 
    @Autowired 
    private MyCustomValidator validator; 

    @InitBinder 
    protected void initBinder(final WebDataBinder binder) 
    { 
     binder.addValidators(validator); 
    } 
} 
+0

このアプローチは、コントローラに定型コードの多くを必要とします。最終実装では、@Validアノテーション(またはその他のカスタムアノテーション)のみが必要です。 –

関連する問題