Spring框架中的DAO和Service层到底是什么?
我正在寻找理论上的答案。
就 Spring 而言,没有区别。按照惯例,您可以使用 . 标记 DAO 类@Repository
和使用@Service
. 前者也做了一些持久层异常翻译。
既然您在理论上问:DAO 应该执行原始数据库操作并将它们转换为一些更高级别的构造(对象、集合)。服务应该调用 DAO 并执行业务操作。通常,事务划分是在服务层上执行的,以跨越多个 DAO 调用。
最后,DAO 应该从持久性细节中抽象出业务逻辑,理想情况下允许在不更改业务逻辑(服务)的情况下切换持久层。由于持久性提供者的抽象泄漏(例如延迟加载),这几乎是不可能的。
DAO - 数据访问对象,是处理与数据存储(通常是数据库)的连接的对象。您在这里有您的查询,DAO 为您的服务提供数据。
服务应该包含你所有的逻辑。如果你有逻辑分离,理论上你可以改变你的 UI 层或 DAO 层而不影响它。
DAO(数据访问对象)是一种设计模式,它包括为数据库上的每个表创建一个类,它提供了一种分离对象持久性和数据访问逻辑的技术