web-dev-qa-db-ja.com

JSR-303(bean validation)の実装はありますか?

Commons-validatorやhibernate validatorなどの非標準のフレームワークがあることは知っています。

誰かが公式の標準の実装を知っているかどうか知りたかった。

41
flybywire

Hibernate Validatorは、JSR-303の 参照実装 です。

34
skaffman

現在、2つの準拠した実装があります。

ベンチマークと両方の簡単な説明にアクセスできます: http://carinae.net/2010/06/benchmarking-hibernate-validator-and-Apache-beanvalidation-the-two-jsr-303-implementations /

57
bashflyng
14
Martin K.

OVaL はJSR-303バリデータではありませんが、jsr303制約を独自のものに変換できます。

3
schnitz

Spring Frameworkは、バージョン3以降でJSR303に準拠するようになったと思います。

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#validation-beanvalidation

Spring Framework 4.0は、セットアップサポートの観点からBean Validation 1.0(JSR-303)およびBean Validation 1.1(JSR-349)をサポートし、SpringのValidatorインターフェースにも適合させます。

3
VHS

2018年夏については、互いに取って代わる3つの仕様があります。

  • JSR 380(Bean Validation 2.0)
  • JSR 349(Bean Validation 1.1)
  • JSR 303(Bean Validation 1.0)

詳細は 公式サイト を参照してください。

Hibernate Validator 6.1 は最新のもの(380)のリファレンス実装です。それは素晴らしい ドキュメント をご覧になることをお勧めします(ただし、かなり大きなものです)。

CUBAプラットフォームのドキュメント は、速いイントロだけが必要な場合、トピックの理解をはるかに短くすることができます。 CUBAフレームワークはSpringとEclipseLinkに基づいているので、学んだことは通常のSpring + Hibernateプロジェクトでも使用できます:)

JSR 349は、Hibernate Validatorの古いバージョンと Apache BVal でサポートされています。どちらも「公式」です。

Hibernate以外のORMから、 EclipseLink はJSR 349をサポートし、HVが提供するValidatorインターフェースを使用できます。

可能であれば、古いバージョン(JSR 303)を使用せずに、349または380仕様に切り替えることをお勧めします。彼らはかなり成熟していて豊かです。

ORMが含まれていないプロジェクトでもBean Validationを使用できます。たとえば、Java 2SEまたはAndroidアプリを使用できます(これを参照してください- article )ただし、これはBean Validationが主な目的として設計されたアプローチではありません。これらのバリデーター(HVおよびBVal)を単独で使用することもできます(インスタンス化して呼び出す必要があります) ValidatorおよびExecutableValidator手動)、Hibernate、Spring、または [〜#〜] cuba [〜#〜]

1