2012-03-18 10 views
3

私はJava Webアプリケーション開発者です。Java Webアプリケーションのレイヤー

そして、私はサーバー側の層と恋に落ちていることがわかりました。

私はMVC(モデル/ビュー/コントロール)ではなく、DAO /サービス層を意味します。

ダオレイヤを使用してデータベースを接続します。

なぜサービス層ですか?

私たちはspring mvcフレームワークを使用しているので、データをフェッチするためにdaoを呼び出すなど、コントロールのログインを処理していました。サービス層は必要ですか?

+0

http://en.wikipedia.org/wiki/Multitier_architecture – MJM

+1

多分http://stackoverflow.com/questions/698220/mvc-vs-n-tier-architectureの複製 – MJM

答えて

2

サービス層はトランザクションについて知っています。ユースケースと作業単位にマップされます。彼らはサービス指向アーキテクチャの基礎であるため、Web UIがなくなっても役立つ機会があります。

私は、レイヤーを不要にする唯一の時間は、データへの読み取り専用アクセスのためだと言います。その場合、私はサービスよりもDAOを処分する可能性が高くなります。

1

DAO層 - それは、DBトランザクションを処理し、唯一のDBのもの、基本的なCRUDや他のいくつかの発見のクエリを処理し

サービス層は - 実際にビジネス固有のロジックを実行するためにDAO層に依存し、それはビジネスのトランザクションを処理する

それらを区別する利点は、関連項目もあなたは生のストレージが

を変更した場合/変更DAO層をプラグする機会を持つことになり、他のフロントエンドでサービス層を差し込むことができている

3

サービス層にはいくつかの理由がありますが、私のために、いくつかの主要な利点があります。

  1. は、集約から構成されている、サービスメソッドの宣言型トランザクション制御を可能にしますトランザクションではないDAOコール
  2. 単なるDBアクセスからのビジネスレイヤロジックの明確な分離。
  3. 上記を簡単に交換可能なチャンクにカプセル化することにより、より高いレベルでのテストを容易にします。

サービス層は必要です?もちろんですが、技術的にははありません。層が必要です。すべてがJSPページにラップされる可能性があります。粒度、制御、懸念の分離の問題です。

1

サービスレイヤは、通常、インテグレーションレイヤとして使用されます。それはそれに関連していない機能を持つDAO層の「泥だらけ」を防ぎます。たとえば、次のように

  • セキュリティ
  • ビジネスロジックと検証
  • 外部システム統合

あなたのサービス層では、混合およびからのマッチング、システムの様々な見解」を実装する場所もあります新しい機能を作成するために下位層。

関連する問題