0
以下のコードで試してみましたが、春のように、ビーン検証はコントローラメソッド(@RequestMappingで注釈を付けられたもの)に対してのみ機能し、プレーンメソッドはBeanの検証をトリガーしません。Bean検証は、Springのコントローラメソッドに対してのみ機能しますか?
@RequestMapping(value = "/test-validate", method = RequestMethod.POST)
public String test(@Validated Obj obj){
return "validation-works";
}
@RequestMapping(value = "/test-local-method-validate", method = RequestMethod.POST)
public String test2(@Validated Obj obj){
Obj obj = new Obj();
localValidate(obj);//won't validate, though content is null
}
void localValidate(@Validated Obj obj){
log.debug("entered");
}
//Model
public class Obj{
@NotNull
public String content = null;
}
我々は最初のメソッドを呼び出す場合:/テストローカルメソッド検証、我々はローカル普通の方法で呼び出す:/テスト検証第二の方法のためながら、検証は、トリガーするlocalValidate、検証は機能しません。
trueの場合、どのようにプレーンメソッドでBean検証を有効にできますか?
質問がありますか? –
@MDeinum元の質問に質問を追加: プレーンな方法でBeanの検証を有効にするにはどうすればよいですか? – DiveInto
AspectJを使ってAOPをトリッキーにしないと、それを有効にすることはできません。これを有効にするために 'MethodValidationPostProcessor'を登録することはできますが、(AOPプロキシの使用による)内部呼び出しではなく、外部呼び出しに対してのみ機能します。 –