Springは、Spring検証とJSR-303 Bean検証という2つの異なる検証方法をサポートしています。どちらも、Beanバリデーターを含む他のデリゲーターにデリゲートするSpringバリデーターを定義することで使用できます。ここまでは順調ですね。
しかし、実際に検証を要求するようにメソッドに注釈を付ける場合、それは別の話です。このように注釈を付けることができます
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
またはこのように
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
ここで、@ Validはjavax.validation.Validで、@ Validatedはorg.springframework.validation.annotation.Validatedです。後者のドキュメントは言う
JSR-303のValidのバリアントであり、検証グループの仕様をサポートしています。SpringのJSR-303サポートで便利に使用できるように設計されていますが、JSR-303固有ではありません。
違いが正確にわからないので、あまり役に立ちません。もしそうなら。どちらもかなりうまく機能しているようです。