在Spring MVC中使用服务层(Service)和数据访问层(DAO)

3
我需要知道MVC中Service层的确切目的。 如果没有Service层,我们能否实现它。 这些层的主要职责是什么。 我们能否在没有其中任何一个层的情况下实现。
请问有人可以帮助我了解这个吗?

1
可能是我真的需要服务层吗?的重复问题。 - Cà phê đen
2个回答

1

1
DAO是一个轻量级的存在,其唯一作用是提供与数据库的连接,有时会进行抽象处理以便使用不同的数据库后端。
服务层存在的目的是为客户端发送和接收数据到DAO之间提供逻辑操作。通常这两个部分会被捆绑在同一个模块中,有时甚至在同一段代码中,但你仍然可以将它们视为不同的逻辑实体。
是的,你可以不使用服务层来实现,但这样会缺乏安全性...而没有使用服务层,请求和响应的工作速度更快...
服务层的另一个原因是安全性——如果你提供了一个与数据库无关的服务层,那么除了通过服务访问数据库之外,攻击者很难从客户端获得对数据库的访问权限。如果不能直接从客户端访问数据库(并且没有简单的DAO模块充当服务),那么攻击者在获取到客户端控制权后所能做的就只是试图攻击服务层,除非他在获取到最少的数据访问权限之前成功地破解了服务层。
由于这些问题已经在StackExchange上得到了gbjbaanb的回答,因此本次不再回答。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接