1

私は、Spring ベースの Web アプリケーションのいくつかのプロジェクトに参加しており、自分でかなりの量を書いています。通常、(大まかに言えば) 次のフォルダーを使用して、クラスをdaomodelsweb(たとえば、Spring MVC を使用する場合のコントローラー用、または JSF 用のバッキング Bean を使用する場合) のようなカテゴリで分割し、サービスも提供します。ここのクラスが単にメソッドを dao に転送する場合があります)。

今、私は EJB アプリケーションの開発に直面しています - とにかくいくつかwebmodelクラスがあることを学びました。また、専用daoレイヤーを使用するか、データアクセスを配置する場合がありますfacades(冗長性は向上しますが、専用フォルダーを好みます)。

しかし、ファサードがまさにビジネスロジックを配置する場所なのか、それともservicesフォルダーを追加してfacadesもっと似たものを使用する必要があるのかdao​​ (それ自体を排除する)、はっきりとはわかりませんdao

また、EJB アプリケーション アーキテクチャに関するヒントを簡潔かつ包括的にまとめていただけると幸いです。

4

1 に答える 1

2

Spring で行ったように、EJB で同様の設定を行います。Web パッケージ (MVC のもの)、ほとんどのビジネス ロジックを含むサービス層、基本的な CRUD 操作といくつかのデータベース クエリを含む DAO 層があります。

このシナリオでは、データベースを必要としない高速な単体テストを使用してセッション Bean の複雑なビジネス ロジックをテストでき、ここで DAO アクセスをモックできます。次に、DAO レイヤーの比較的単純なテストを行うことができるため、データベースを必要とする (つまり、かなり遅い) テストの数が少なくなります。

通常facade、Web サービスなどを介してシステムを操作するための単純なメソッドを提供する一連のセッション Bean を呼び出します。これらの Bean は、通常のサービス層 Bean を使用します。Web レイヤーだけで統合レイヤーがないので、追加のレイヤーを作成する理由がわかりませんfacade

于 2013-01-31T08:15:36.757 に答える