【问题标题】:What is DAO and Service layer exactly in Spring framework?Spring框架中的DAO和Service层到底是什么?
【发布时间】:2023-03-07 07:14:01
【问题描述】:

Spring框架中的DAO和Service层到底是什么?

我正在寻找理论上的答案。

【问题讨论】:

    标签: java spring service dao


    【解决方案1】:

    就 Spring 而言,没有区别。按照惯例,您可以用@Repository 标记DAO 类,用@Service 标记服务。前者还做了一些持久层异常翻译。

    既然您在理论上问:DAO 应该执行原始数据库操作并将它们转换为一些更高级别的构造(对象、集合)。服务应该调用 DAO 并执行业务操作。通常,事务划分是在服务层上执行的,以跨越多个 DAO 调用。

    最后,DAO 应该从持久性细节中抽象出业务逻辑,理想情况下允许在不更改业务逻辑(服务)的情况下切换持久层。由于持久性提供程序的泄漏抽象(例如延迟加载),这几乎是不可能的。

    【讨论】:

      【解决方案2】:

      DAO - 数据访问对象,是处理与数据存储(通常是数据库)的连接的对象。您在这里有您的查询,DAO 为您的服务提供数据。

      服务应该包含你所有的逻辑。如果你有逻辑分离,理论上你可以改变你的 UI 层或 DAO 层而不影响它。

      【讨论】:

        【解决方案3】:

        它提供了解耦的好处。当数据源发生变化时,您在服务中为所有服务用户(移动客户端、Web 客户端)处理数据的方式不会改变。但是您需要改变从数据源中提取数据的方式。

        【讨论】:

          【解决方案4】:

          DAO(数据访问对象)是一种设计模式,它包括为数据库上的每个表创建一个类,它提供了一种分离对象持久性和数据访问逻辑的技术

          【讨论】:

            猜你喜欢
            • 2016-05-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-06
            • 2016-11-28
            • 1970-01-01
            相关资源
            最近更新 更多