javaweb应用程序中的层

javaweb应用程序中的层,java,jakarta-ee,spring-mvc,Java,Jakarta Ee,Spring Mvc,我是一名java web应用程序开发人员 我发现我与服务器端的层融合在一起 我指的不是MVC(模型/视图/控制),而是dao/服务层 Dao层用于连接数据库 为什么选择服务层 因为我们现在使用SpringMVC框架,所以我过去常常在控件中处理登录,包括调用dao来获取数据。是否需要服务层?服务层了解事务。它们映射到用例和工作单元。即使您的web UI消失了,它们也有机会发挥作用,因为它们是面向服务体系结构的基础 我想说的是,我唯一不使用图层的时候是对数据的只读访问。在这种情况下,我更可能处理DA

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

我发现我与服务器端的层融合在一起

我指的不是MVC(模型/视图/控制),而是dao/服务层

Dao层用于连接数据库

为什么选择服务层


因为我们现在使用SpringMVC框架,所以我过去常常在控件中处理登录,包括调用dao来获取数据。是否需要服务层?

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


我想说的是,我唯一不使用图层的时候是对数据的只读访问。在这种情况下,我更可能处理DAO而不是服务。

DAO层-仅处理DB内容、基本CRUD和其他一些查找查询,它处理DB事务

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

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

另请参见


    • 使用服务层有几个原因,但对我来说有几个主要优势:

    • 允许对服务方法进行声明性事务控制,服务方法可能由聚合的非事务性DAO调用组成
    • 业务层逻辑与数据库访问的清晰分离
    • 通过将上述内容封装到易于替换的块中,可以更轻松地在更高级别进行测试

    • 服务层是必要的吗?当然不是——但从技术上讲,不需要分层;所有内容都可以封装在JSP页面中。这是一个粒度、控制和关注点分离的问题。

      服务层通常用作集成层。它可以防止DAO层与它无关的特性“混淆”。例如:

      • 保安
      • 业务逻辑和验证
      • 外部系统集成
      您的服务层也是实现系统各种“视图”的地方,从较低层混合和匹配以创建新功能。

      请参阅