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