アノテーションを介したJava Beanへの検証の追加
-
05-07-2019 - |
質問
検証をJava Beanに追加したい。たとえば、次のことをしたいです。
@MaxLength(50)
@RequiredField
public void setEmployeeName(String name){
.....
}
すべてのBean値が設定された後に method.getDeclaredAnnotation
を呼び出すことにより、特定のメソッドの検証を取得するコードを作成できることを知っています。このコードを書かないようにしたい
Java6には、アノテーションを介して標準の検証を提供するものがありますか?これらの注釈を呼び出すためにaspectjが必要ですか?
事前に感謝します。
解決
Bean Validation Frameworkを使用できます。ここに短い概要があります http://relation.to/Bloggers/BeanValidationSneakPeekPartI
他のヒント
JSR 303 をご覧ください。 RI(リファレンス実装)はこちらで、これも素晴らしいチュートリアルです。いいえ、AspectJは必要ありません。
これを行うことができる唯一の方法は、リフレクションとカスタム検証ユーティリティ/インターセプター/プロキシを使用することです。 JSR 303とJSR 305は同様の機能を導入するために提案されましたが、このようなものは存在しません。
遭遇する問題の1つは、これらの注釈を何らかのフレームワークレベルで処理する必要があること、または少なくとも、何らかのアクションを呼び出す前にインターセプトする必要があることです。これを行う2つの最も一般的な常識であるブルートフォースの方法は、ユーティリティを作成するか、呼び出しハンドラー(プロキシ)で事前呼び出しを検証することによって行われます。
現実には、これがSpring、Struts、Guice、Java自体などに組み込まれていない限り、不必要なオーバーヘッドが発生しているだけであり、必要に応じて検証境界を確認した方がよいでしょう。