创新的商城网站建,wordpress同分类文章列表,郑州市金水区建设局官方网站,ICP网站忘记密码文章目录 前言分层架构项目实践示例项目结构 其他知识 前言
开发后端项目时#xff0c;我们最常见的一种架构模式就是分层架构 。
所谓的分层架构#xff0c;就是把系统自上而下分为多个不同的层#xff0c;每一层都有特定的功能和职责#xff0c;且只和自己的直接上层与… 文章目录 前言分层架构项目实践示例项目结构 其他知识 前言
开发后端项目时我们最常见的一种架构模式就是分层架构 。
所谓的分层架构就是把系统自上而下分为多个不同的层每一层都有特定的功能和职责且只和自己的直接上层与直接下层 “打交道”。
分层架构的优点是每一层都有明确定义的职责易于理解和维护而且各层可以独立扩展以适应不同的需求。
所以分层架构也是最适合新手入门学习、并且实际开发中应用最多的架构。
分层架构
下面给大家一种 Java 企业级后端项目开发时常用的分层架构一般从前端界面表示层发送的请求出发需要经历接入层、控制层、业务逻辑层、通用业务层、数据访问层、系统资源层等。 表示层 通常是指让用户交互和查看信息的前端界面比如用户点击按钮后能够发送一个请求也可以叫用户层、界面层等。 发送请求后会经过 接入层 比如 Nginx 网关、或者其他中间件对请求做一个预处理或转发比如实现负载均衡。这一层不是必须存在的通常更适用于中大型项目前端也可以直接请求后端。 接入层会将请求转发到 控制层Controller负责接受请求、调用业务逻辑层Service的代码实现功能、然后响应结果。控制层一般不建议写复杂的业务逻辑尽量保持精简。 接下来是 业务逻辑层Service负责处理复杂的业务逻辑比如对请求数据进行校验、处理、调用数据访问层以将结果存到数据库中等也是我们做系统时主要开发编码的部分。 通用业务层Manager、Module是一种特殊的业务逻辑层主要的作用是抽取了一些需要被多个业务调用的公共代码比如上传文件到对象存储、鉴权等从而实现复用。 数据访问层Dao / Mapper负责操作底层的数据源比如对数据库、文件、缓存等进行增删改查。 最后是 系统资源层 也可以叫基础设施层包括各种基础服务、系统环境等比如数据库、消息队列、Redis、文件存储、Linux 系统、Docker 等。复杂的基础设施可能还包括 K8S 容器资源编排、资源调度平台等。
需要注意的是并不是所有的分层架构都需要这么划分不同业务和团队可能有自己的分层选择与规范。
项目实践
比如我带大家开发的 OJ 在线判题系统 分层架构如下
示例项目结构
基于分层架构我们可以将项目按照特定的目录名包名来组织代码比如
controller控制层service业务逻辑层mapper数据访问层model数据模型
还可以按照业务或文件的类型来划分目录比如
constant常量annotation注解类common公共类config配置类job任务exception异常处理相关utils工具类
以之前带大家做过的为例项目的目录结构如图
其他知识 计算机网络也是采用了经典的分层架构OSI 七层参考模型中把计算机网络自底向上分为了物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每个层只处理特定的功能比如数据传输、数据的路由层与层之间通过接口或者叫协议进行通信。 需要注意的是我们常用的后端开发框架 Spring MVC 是基于 MVCModel-View-Controller设计模式构建的而不能算是传统的分层架构。而且一般现在的项目中只使用 Spring MVC 作为整个项目的控制层不过大多数用了 Spring MVC 框架的项目基本都使用了分层架构。