私が求めている質問は、本当にシンプル(愚かなものでも)かもしれません。javax validatorとhibernateバリデータはどのように関連していますか?違いは何ですか?
私はspring-hibernate MVCアプリで検証を使用していました。私は、javax.validationパッケージに由来する@NotNull、@Patternなどの制約を使用しています。 @Emailのような私の制約は、org.hibernate.validator.constraintsからインポートされます。バリデータークラスでは、ValidatorFactoryと他のクラスまたはインターフェース(Validation、Validatorなど)を使用します。これらはすべてjavax.validationからのものです。私は本当にこれと混同しました。
次に、正確には、バリデーター・バランサとバウンダリ・バリデーター・パッケージが正確に何であるかを詳しく調べ始めました。明らかにJSR303の実装です。
は私がさらに私を混乱させるために
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
を使用し、検証するために、私はこのように書きValidatorFactoryインスタンス化のもう一つの方法読む -
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class).configure().buildValidatorFactory();
をし、それが正常に動作します!
これらの両方をよく理解してください。
ありがとうございました。
ありがとうございました。つまり、彼らは同じであるということですか?もしそうであれば、なぜ同じことがたくさんあるのですか?同様に、違いがあるはずですね。 – nikhil
いいえ、私は彼らが同じであると言っているわけではありません。私は、規格を定義し、実装をしておらず、もう一方はその規格の実装を提供していると言っています。 Beanの検証には多くの実装がありません。しかし、それぞれが多かれ少なかれ効率的であり、標準によって要求されるものよりも多かれ少なかれ電子メールバリデータのような追加の機能を提供するものがいくつかあります。 –
import javax.validation.constraintsがインポートされたときに、それがHibernateによって内部的に実装されていることを意味しますが、その名前は標準のためにjavax.validationですか? – nikhil