質問

検証を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自体などに組み込まれていない限り、不必要なオーバーヘッドが発生しているだけであり、必要に応じて検証境界を確認した方がよいでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top