笔者在初学SSH框架的时候(问就是学校开的)最初对服务层和DAO层的认知不足,以为二者做的事情都是一样的,询问老师后得到了一个令笔者豁然开朗的答案。
服务层(Service)和数据访问层(DAO)是常见的分层架构中的两个核心层次,用于将应用程序分成几个独立的部分,以简化复杂度并提高代码的可维护性。虽然在业务实现上这两者有相似之处,但在设计上有很大的差异,它们各自解决不同的问题。DAO层主要涉及数据库的操作,包括增删改查等一系列操作,并将底层数据库的访问进行抽象封装,在这里负责封装如何访问底层的数据库,起到了对上层业务提供数据访问服务的作用。DAO层的目的是隔离数据上下文并提供针对数据源的操作接口,使得数据的操作更加可控和可维护。Service层则作为业务逻辑处理的位置,它通常被定义为使用DAO层进行数据处理并实现业务服务。Service层的主要职责是对业务逻辑进行组织,管理和控制,以确保事务的原子性和数据的一致性。Service层的另一个重要特点是将DAO层的结果转换为更加友好的领域模型,以便更好地满足业务需求。