`
douknow
  • 浏览: 16448 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于Spring的web服务端逻辑代码层次及对应职责的一点想法

阅读更多

引子

根据Robert C.Martin在《敏捷软件开发-原则、模式与实践》一书的观点,一个基本满足敏捷开发的代码应该符合以下5个原则:
SRP  单一职责原则
    就一个类而言,应该仅有一个引起它变化的原因。
OCP  开放一封闭原则
    软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。
LSP  Liskov替换原则
    子类型必须能够替换掉它们的基类型。
ISP  接口隔离原则
    不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。
DIP  依赖倒置原则
    抽象不应该依赖于细节。细节应该依赖于抽象。
但在现实中,由于各个各样的原因,系统中总会有这样那样不符合这5个原则的地方。
这样的代码维护起来就两个字: 累  乱。
一个理想的系统,代码层次应该是这样的:
 

较理想的代码层次和职责

 

层次 职责 允许的操作 不允许的操作
外部入口层(输入入边界) 接收外部请求,封装成代码内部可用数据 读取各种外部输入资源,如http请求,文件等 直接调用基础服务
包括直接调用dao,mc,mq等
接口服务层 校验请求数据的格式合法性,并调度各个业务服务,串联推动业务服务   无特殊情况,不直接调用基础服务层
业务服务层 进行一个和多个领域模型之间的业务的封装,
 
缓存各种独立在db外的信息
可配合工具类实现领域对象的重新封装
 
领域服务层 提供单个领域的各种操作,如增删改查。

缓存各种基于db的列表信息
可配合工具类实现领域对象的重新封装
 
基础服务层 提供基础的存储和外部服务依赖的 dao服务:可对应db行记录缓存领域对象 dao服务无特殊情况不缓存 领域对象的列表
0
1
分享到:
评论

相关推荐

    spring-web.jar

    2. Spring Web Services:Spring Web Services模块提供了创建基于SOAP的Web服务的功能,与`spring-web.jar`结合可以方便地构建服务端和消费端。 3. Spring Security:用于Web应用的安全控制,它可以与`spring-web....

    cxf-spring 服务端and客户端

    【标题】"cxf-spring 服务端and客户端"揭示了这个项目是关于Apache CXF框架与Spring框架的集成,用于构建服务端和客户端应用程序。Apache CXF是一个开源的Java框架,它允许开发者创建和消费Web服务,而Spring框架则...

    springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口

    在IT行业中,Web Service是一种基于XML的通信标准,允许不同系统之间进行互操作性交互。Spring Boot是一个流行的Java框架,用于简化Spring应用的创建和管理。本教程将讲解如何使用Spring Boot集成Apache CXF(一个...

    使用SpringCloud开发的学生作业管理系统服务端,前后端分离项目,微服务架构

    【标题】中的“使用SpringCloud开发的学生作业管理系统服务端”表明该项目是一个基于SpringCloud框架构建的后端服务,专门用于管理学生作业。SpringCloud是Java生态中的一个微服务开发工具集,它提供了服务发现、...

    spring security3 中文版本

    - **获得源代码**:可以从 GitHub 或 Maven 仓库获取 Spring Security 的源代码。 #### 二、Spring Security 命名空间配置 ##### 2.1 命名空间的设计 Spring Security 提供了一个简洁的命名空间,用于简化配置...

    采用SpringBoot+Spring+Spring mvc+mybatis实现Flutter微校园APP的服务端程序-源码

    本项目是基于Spring Boot、Spring、Spring MVC和MyBatis技术栈实现的Flutter微校园APP的服务端程序。这个服务端程序旨在为Flutter前端提供稳定、高效的数据接口,以支持校园生活的各种功能,如课程管理、成绩查询、...

    使用 Spring-WS 完成的 Web Service (SOAP)

    Spring-WS 是一个基于 Java 的轻量级 Web Service 框架,专注于 SOAP 协议。这个框架使得开发者能够创建符合 W3C 标准的、契约优先的 Web Service 应用程序。在本篇文章中,我们将深入探讨如何使用 Spring-WS 实现 ...

    CXF协议WebService+Spring客户端和服务端程序,实现了多数据源动态切换

    本项目重点是利用CXF实现基于Spring的Web服务客户端和服务端程序,并且具有多数据源动态切换的功能。 首先,让我们详细讨论CXF框架。CXF是一个Java框架,它提供了一种灵活的方式来构建和部署Web服务。CXF支持WS-*...

    ibatis+spring+cxf+mysql搭建的myWebservice服务端

    本项目利用ibatis、spring、cxf和mysql这四个关键技术,搭建了一个名为myWebservice的服务端,旨在提供灵活的数据交互和强大的服务功能。以下是对这些技术及其在项目中应用的详细解释: 1. **iBatis**:iBatis是一...

    快速开发基于Java的服务端程序,分布式RPC,阿里云快速接入。.zip

    Spring Boot基于Spring框架,旨在简化初始化和配置过程,让开发者更专注于业务逻辑。 3. **分布式RPC**:分布式RPC允许在不同的网络节点之间透明地调用方法,如同在本地一样。Hadoop的Hadoop RPC、Google的gRPC和...

    毕业设计管理系统java服务端,采用spring mvc

    毕业设计管理系统是一个典型的Java Web应用,它利用Spring MVC框架来构建服务端逻辑。Spring MVC是Spring框架的一个模块,专门用于处理Web应用程序的请求-响应模型。这个系统可能包含了用户管理、项目分配、进度跟踪...

    Spring集成Cxf调用WebServices

    6. **CxfSpringClient**:根据提供的文件名,这可能是一个示例项目或者代码,展示了如何在Spring环境中配置和使用CXF客户端。可能包含Spring配置文件、服务接口、客户端调用逻辑等组件。分析这个项目可以帮助理解...

    当当网服务端

    【当当网服务端】是基于SSH框架构建的电商系统,SSH全称为Spring、Struts和Hibernate,这是一套在Java Web开发中广泛使用的开源框架组合。Spring提供了强大的依赖注入和面向切面编程功能,Struts则负责处理MVC模式中...

    Springboot整合CXF发布Web service和客户端调用(用户和密码验证)

    CXF提供了`wsdl2java`工具,可以基于Web服务的WSDL文件生成客户端代码。你可以使用Maven的CXF插件或者命令行工具来执行此操作。 生成客户端代码后,你可以在Spring Boot客户端应用中引入这些生成的类,并使用它们来...

    点餐小程序服务端代码

    点餐小程序服务端代码主要涉及的是餐饮行业的在线订餐系统,其核心是通过小程序作为前端交互界面,结合后端服务处理订单、管理菜单等业务逻辑。在这个项目中,服务端扮演着至关重要的角色,它是连接数据库与小程序...

    Spring+CXF+MyBatis整合代码

    总结来说,"Spring+CXF+MyBatis"的整合代码实现了基于Web服务的数据访问,Spring作为整体框架,管理组件间的依赖;CXF提供了Web服务接口,使得服务对外暴露;而MyBatis则负责底层的数据库操作。这种整合模式在实际...

    基于Android的服务端使用springboot毕业设计-戒烟管理系统.zip

    这是一个基于Java的Android服务端项目,使用SpringBoot框架构建,主要功能是戒烟管理系统的毕业设计。SpringBoot是一个由Pivotal团队提供的开源框架,它旨在简化Spring应用程序的初始搭建以及开发过程。通过内置的...

    gwt(google web toolkit) 和 spring 在一起使用列子

    Google Web Toolkit (GWT) 和 Spring 是两个在Java Web开发中广泛使用的框架。GWT 是一个用于构建富互联网应用程序(RIA)的开放源代码工具包,它允许开发者使用Java语言编写客户端代码,然后通过编译转换成优化的...

    【Java毕业设计】毕业设计管理系统java服务端,采用spring mvc.zip

    Spring MVC是Spring框架的一部分,它是一个轻量级的、基于组件的Web框架,能够有效地解耦应用程序的业务逻辑和呈现逻辑。通过使用DispatcherServlet作为前端控制器,Spring MVC能够调度请求并将其转发给相应的处理器...

    基于Java的Spring4GWT.zip

    标题中的“基于Java的Spring4GWT.zip”表明这是一个关于使用Java编程语言,结合Spring框架和GWT(Google Web Toolkit)技术的项目压缩包。这个项目可能是一个Web应用程序,利用了Spring的强大功能来管理和协调应用的...

Global site tag (gtag.js) - Google Analytics