短い答えはノーです。JSR-303 で最初に言及されたわけではありませんが、通常は MVC のデータ バインディングと検証に使用されます。私は次のことを試してみます。
JSR-303 アノテーションがあるため、Spring コンテキストで JSR-303 バリデーターを構成します。この場合、LocalValidatorFactoryBean
標準の JSR-303 検証メカニズムをブートストラップするのは になります。クラスパスで利用可能な JSR-303 のベンダー/インプリメンターが必要であることに注意してください (例: Hibernate Validator)。
ApplicationContextListener<ContextStartedEvent>
アプリケーション コンテキストが開始されて準備ができたときにイベントを受け取るようにのインスタンスを実装します。また、Bean が次のインスタンスを受け取ることを許可しますLocalValidatorFactoryBean
。
public class GenericApplicationValidator implements ApplicationListener<ContextStartedEvent> {
private ValidatorFactoryBean validatorFactoryBean;
public void onApplicationEvent(ContextStartedEvent e) {
// Refer to next step
}
public void setValidatorFactoryBean(ValidatorFactoryBean vfb) {
this.validatorFactoryBean = vfb;
}
}
メソッド内onApplicationEvent(ContextStartedEvent e)
:
- アプリケーション コンテキストのインスタンスを取得します。
- アプリケーション コンテキストを通じて、検証する必要があるすべての Bean を見つけます。
- アクセスできます
validatorFactoryBean.getValidator()
- すべての Bean を反復処理し、バリデーターを使用して Bean を検証します。
私はこれを行う経験がなかったことを覚えておいてください。しかし、それはあなたが必要とするものを達成するために近づくための1つの方法になり得るように私には思えます.