【问题标题】:layers in java web application [closed]java web应用程序中的层[关闭]
【发布时间】:2012-04-03 06:02:52
【问题描述】:

我是一名 Java Web 应用程序开发人员。

我发现我对服务器端的层感到很困惑。

我不是指 MVC(模型/视图/控制),而是 dao/服务层。

道层用于连接数据库。

为什么是服务层?

由于我们现在使用的是spring mvc框架,所以我以前在控件中处理登录,包括调用dao来获取数据。服务层有必要吗?

【问题讨论】:

标签: java jakarta-ee spring-mvc


【解决方案1】:

服务层有几个原因,但对我来说有几个主要优点:

  1. 允许对服务方法进行声明式事务控制,其中可能包含聚合的非事务性 DAO 调用。
  2. 将业务层逻辑与单纯的数据库访问明确分离。
  3. 通过将上述内容封装到易于替换的块中,可以更轻松地在更高级别进行测试。

服务层是否必要?当然不是——但技术上 no 层是必要的;一切都可以包含在一个 JSP 页面中。这是一个粒度、控制和关注点分离的问题。

【讨论】:

    【解决方案2】:

    服务层了解事务。它们映射到用例和工作单元。即使您的 Web UI 消失,它们也有机会发挥作用,因为它们是面向服务架构的基础。

    我会说,我唯一会省去层的情况是对数据进行只读访问。在这种情况下,我更有可能处置 DAO 而不是服务。

    【讨论】:

      【解决方案3】:

      DAO 层 - 仅处理数据库内容、基本 CRUD 和其他一些查找查询,它处理数据库事务

      服务层 - 实际上依赖于 DAO 层来执行业务特定的逻辑,它处理业务事务

      区分它们的优点是您可以将服务层插入任何其他前端,如果原始存储发生变化,您也有机会插入/更改 DAO 层

      另见

      【讨论】:

        【解决方案4】:

        服务层通常用作集成层。它可以防止与 DAO 层无关的功能“混淆”。例如:

        • 安全性
        • 业务逻辑和验证
        • 外部系统集成

        您的服务层也是您实现系统的各种“视图”的地方,从较低层混合和匹配以创建新功能。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-05
          • 2010-09-12
          • 1970-01-01
          • 1970-01-01
          • 2012-08-26
          • 1970-01-01
          相关资源
          最近更新 更多