2011-12-22 3 views
0

私はSpring 3を使用していますが、この質問はより広く適用可能です、と私は思います。MVC Webアプリ - データの有効性を保証する場所

私は、フロントコントローラ(春DispatcherServlet)を備えたWebアプリケーションを持っています。そこからサービスが呼び出され、レコードがデータベースに挿入されるなど、目的のタスクを実行するためにDAOまたは2つが使用されます。

ここで、データが有効であることを確認しますか?私は、最大長が50文字のエントリがあるとします。入力の長さはどの時点で< = 50であるべきですか?

コントローラの有効性をチェックすると、データを検証しないサービスを呼び出す他のコードが書き込まれる可能性があります。

サービス層の妥当性をチェックできますが、誰かがデータの有効性をチェックしないサービスを作成し、DAOに「悪い」データを渡す可能性があります。

DAOに妥当性チェックを入れるのは明らかです。コードをテストする能力に影響するでしょうか?

データの有効性をチェックする際のベストプラクティスは何ですか?

答えて

1

サービスがコントローラ以外から呼び出せる場合は、サービスレイヤで検証を実行できます。入力データが無効な場合、サービスからカスタム例外をスローすることができます。呼び出し側は、例外の詳細を調べることによって、検証エラーの原因となったデータに関する情報を取得できます。

+0

ありがとうございます。私はあなたの論理に同意します。私は複数のDAOを使用するサービスを持っているので、サービスレイヤーでいくつかのライト検証を行いますが、DAOはデータストアの最後の「防衛線」であるため、そこで最も厳しい検証を行います。 – Paul

関連する問題