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