私が取り組んでいる既存のアプリケーションでは、ActionクラスはDAOクラスと直接対話します。支柱コントローラとサービス層?
サービスクラス(BusinessFacade)を呼び出すと、DAOを呼び出すことができますか?
ActionクラスとDAOレイヤーの間にレイヤーを開発する方がよいでしょうか?
私が取り組んでいる既存のアプリケーションでは、ActionクラスはDAOクラスと直接対話します。支柱コントローラとサービス層?
サービスクラス(BusinessFacade)を呼び出すと、DAOを呼び出すことができますか?
ActionクラスとDAOレイヤーの間にレイヤーを開発する方がよいでしょうか?
このようにして、ビジネスロジック(ナビゲーション問題に関係しないロジック)を再利用できるように分離することができます。
あなたが分かれば、ビジネスロジックをWeb以外のアプリケーションでも再利用できるようになります。
データアクセス層は、オブジェクトが抽象的な記憶域に永続化され、元の記憶域から復元されたレイヤーを意図しています。実際には特にRDBMS永続化の場合は、ORMによってうまく実装できるため、オブジェクトを持続させるためのORMを持つ論理層。私はビジネスロジックをORM(この場合はフロントエンドフレームワークではなく)とマージすることをお勧めします。
コントローラレイヤとDAOレイヤの間のサービスレイヤの目的は、より複雑なビジネスロジックをカプセル化することです。これにより、コントローラはダムになり、DAOはバックエンドのデータリポジトリ(データベース、フラットファイルなど)とのやり取りに集中することができます。ユーザーは、必要な役割を持っていることを確認すること
@PreAuthorize("hasRole('ROLE_ADMIN'));
public Person getPerson(long personId) {
Person person = personDAO.getById(personId);
if (person.getPosition().equals("MANAGER") {
log.debug("Manager's information requested");
}
}
:ここ
は春のセキュリティアノテーションを使用して、サービス層方法の一例です関数を実行します。これらのアクティビティはコントローラ内に配置されておらず、不要な複雑さをDAOに追加します。