java web应用程序中的图层

时间:2012-03-18 13:04:35

标签: java java-ee spring-mvc

我是一名java Web应用程序开发人员。

我发现我很喜欢服务器端的图层。

我不是指MVC(模型/视图/控件),而是dao / service层。

Dao图层用于连接数据库。

为什么是服务层?

由于我们现在使用spring mvc框架,我曾经在控件中处理登录,包括调用dao来获取数据。服务层是否必要?

4 个答案:

答案 0 :(得分:3)

服务层有几个原因,但对我来说有几个主要优点:

  1. 允许对服务方法进行声明式事务控制,这可能包含聚合的非事务性DAO调用。
  2. 明确分离业务层逻辑与纯粹的数据库访问。
  3. 通过将上述内容封装到易于更换的块中,可以更轻松地进行更高级别的测试。
  4. 服务层是否必要?当然不是 - 但技术上没有层是必要的;一切都可以包含在JSP页面中。这是关注点的粒度,控制和分离的问题。

答案 1 :(得分:2)

服务层了解交易。它们映射到用例和工作单元。即使您的Web UI消失,他们也有机会发挥作用,因为它们是面向服务架构的基础。

我想说,我唯一一次免除一层将是对数据的只读访问。在那种情况下,我更有可能处理DAO而不是服务。

答案 2 :(得分:1)

DAO Layer-只处理数据库内容,基本CRUD和其他一些查找查询,它处理数据库事务

服务层 - 实际上依赖于DAO层来执行业务特定逻辑,它处理业务事务

区分它们的优点是你可以将服务层插入任何其他前端,如果原始存储发生变化,你也有机会插入/更改DAO层

另见

答案 3 :(得分:1)

服务层通常用作集成层。它可以防止DAO层的“混乱”与其无关的功能。例如:

  • 安全
  • 业务逻辑和验证
  • 外部系统集成

您的服务层也可以实现系统的各种“视图”,从较低层混合和匹配以创建新功能。