[英]Are Facades in EJB the same thing as service in a spring-based web application
我参与了几个基于 Spring 的 web 应用程序的项目 - 并且自己写了一个数量。 通常我们有(粗略地说)以下文件夹来按类别划分我们的类,例如dao
, models
, web
(对于控制器,如果我们使用 Spring MVC 或用于 JSF 的支持 bean)以及服务- 在这里我们保留我们认为的业务 -逻辑(即使有时这里的类只是将方法转发给 dao)。
现在我面临着 EJB 应用程序的开发——我知道无论如何我都会有一些web
和model
类。 此外,我可能会使用专用的dao
层或将数据访问放入facades
(我更喜欢专用文件夹,但它会增加冗长)。
但是我不清楚facades是否正是将业务逻辑放入其中的地方,或者我应该为其添加services
文件夹并使用更像dao
facades
(消除dao
本身)。
对于 EJB 应用程序体系结构提示的简短而全面的编译,我也很高兴。
我会使用 EJB 进行类似的设置,就像您使用 Spring 所做的那样。 你有你的 web 包(MVC 东西),然后是包含大多数业务逻辑的服务层,然后是包含基本 CRUD 操作和一些数据库查询的 DAO 层。
在这种情况下,您可以使用不需要数据库的快速单元测试来测试会话 bean 中可能复杂的业务逻辑,并且您可以在此处模拟 DAO 访问。 然后,您可以对 DAO 层进行相对简单的测试,因此需要数据库的测试数量(即速度相当慢)较少。
通常,我会称facade
一组会话 bean,这些会话 bean 提供了通过 Web 服务等操作系统的简单方法。 这些 bean 将使用普通的服务层 bean。 只有一个 web 层而没有集成层,我认为没有理由创建额外的facade
层。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.