1

我参与了几个基于 Spring 的 Web 应用程序项目 - 并且自己编写了一个数量。通常我们(粗略地说)有以下文件夹来按类别划分我们的类,例如daomodelsweb对于控制器,如果我们使用 Spring MVC 或 JSF 的支持 bean)和服务- 在这里我们保留我们认为的业务逻辑(甚至有时这里的类只是将方法转发给 dao)。

现在我面临着 EJB 应用程序的开发——我知道无论如何我都会有一些web课程model。我也可以使用专用dao层或将数据访问权限放入facades(我更喜欢专用文件夹,尽管它会增加详细程度)。

但我不清楚门面是否正是放置业务逻辑的地方,或者我应该services为它添加文件夹并使用facades更像dao(消除dao自己)。

我也很高兴能对 EJB 应用程序架构的提示进行简短而全面的编译。

4

1 回答 1

2

我会采用与 EJB 类似的设置,就像您对 Spring 所做的那样。你有你的 web 包(MVC 的东西),然后是包含大部分业务逻辑的服务层,然后是包含基本 CRUD 操作和一些数据库查询的 DAO 层。

在这种情况下,您可以使用不需要数据库的快速单元测试来测试会话 bean 中可能复杂的业务逻辑,并且可以在此处模拟 DAO 访问。然后,您可以对您的 DAO 层进行相对简单的测试,因此需要数据库的测试数量(即相当慢)会更少。

通常我会调用facade一组会话 bean,它们提供简单的方法来通过例如 Web 服务来操作系统。这些 bean 将使用正常的服务层 bean。只有一个 web 层,没有集成层,我看不到创建额外facade层的理由。

于 2013-01-31T08:15:36.757 回答