在Spring框架中,DAO和服务层究竟是什么?

2022-09-01 07:07:02

在Spring框架中,DAO和服务层究竟是什么?

我正在寻找理论答案。


答案 1

就Spring而言,没有区别。按照惯例,您可以使用 标记 DAO 类,并使用 标记服务。此外,前者还执行一些持久性层异常转换。@Repository@Service

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

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


答案 2

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

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


推荐