2017-02-15 4 views
0

私は春のフレームワークを学んでおり、インターセプタを使用するタイミングとValidatorを使用するタイミングについて混乱します。 HibernateとJSRは多くの検証アノテーションを提供しているので、インターセプタの使用は何ですか。フィールドが空であるかどうか、JSRアノテーションまたはインターセプタが推奨する方法が何であるかをチェックしたいとします。Validatorを使用している場合にインターセプタまたはフィルタを使用する理由

妥当性検証ツールでインターセプターを選択する必要があるのはいつかだけです。

+0

インターセプタでは、Springの 'HandlerInterceptorAdapter'のようなものか、Hibernateインターセプタについて話していますか? – Naros

+0

Springインターセプタ –

答えて

0

インターセプタと検証は、別々の概念であり、連携する場合もあれば、連携しない場合もあります。排他的でも矛盾しているわけでもありません。

フィルタとインターセプタは、クロスカッティングの問題やビジネスロジックに直接関係しない再利用可能なコードに適した構造です。検証はそのような懸念の1つですが、ロギング、監査、セキュリティもそうです。

フィルタおよびインターセプタは、サーブレットまたはSpringコントローラハンドラメソッドのライフサイクルを中心にしています。前後に実行されるロジックに関係します。

検証にはこのファセットはありません。通常、ハンドラの前で検証しますが、特定のコンテキストがあれば、それ以外の場合は決定できます。


ナロスコメントについて。彼が言及したように。バリデーション・ロジックの主な目的は、バリデーション・ロジックの再利用を促進することです。バリデーション・ロジックは、通常、異なる層で関与して実行されるような種類の懸念事項です。

このように、別々の概念を別々の問題に向けています。

+0

私はハンドラの前で検証するだけでなく、サービス/ビジネス層や永続性層も重要であると主張したいと思います。これは、他のプロジェクトがWebベースではない複数のプロジェクトにわたって永続性またはサービス層のコードを共有する場合に特に重要です。 – Naros

関連する問題