Spring web应⽤分层(模块结构)

server/2024/12/18 9:36:18/

大家好我是小帅,今天我们来学习web开发的应用分层

文章目录

  • 1.应⽤分层是什么
  • 2.如何分层(三层架构)
  • 3 .应⽤分层的好处


1.应⽤分层是什么

⽬前我们程序的代码有点"杂乱", 然⽽当前只是"⼀点点功能"的开发.代码会更加的杂乱⽆章,这个时候就到应用分层了,在最开始的时候,为了让项⽬快速上线,我们通常是不考虑分层的. 但是随着业务越来越复杂,⼤量的代码混在⼀起,会出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动⼀处就牵⼀发⽽动全⾝等问题. 所以学习对项⽬进⾏分层就是我们程序员的必修课了.


比如说,前面学习的图书管理系统。
在这里插入图片描述
也基于此, 咱们接下来学习应⽤分层.
在这里插入图片描述

2.如何分层(三层架构)

咱们上⼀节中学习的 “MVC”, 就是把整体的系统分成了 Model(模型), View(视图)和Controller(控制器)三个层次,也就是将⽤⼾视图和业务处理隔离开,并且通过控制器连接起来,很好地实现了表现和逻辑的解耦,是⼀种标准的软件分层架构。
在这里插入图片描述
⽬前现在更主流的开发⽅式是 “前后端分离” 的⽅式, 后端开发⼯程师不再需要关注前端的实现, 所以对于Java后端开发者, ⼜有了⼀种新的分层架构: 把整体架构分为表现层、业务逻辑层和数据层. 这种分层⽅式也称之为"三层架构".

  1. 表现层: 就是展⽰数据结果和接受⽤⼾指令的,是最靠近⽤⼾的层;
  2. 业务逻辑层: 负责处理业务逻辑, ⾥⾯有复杂业务的具体实现;
  3. 数据层: 负责存储和管理与应⽤程序相关的数据

按照上⾯的层次划分, Spring MVC 站在后端开发⼈员的⻆度上, 也进⾏了⽀持, 把上⾯的代码划分为三个部分:

  1. 请求处理、响应数据:负责,接收⻚⾯的请求,给⻚⾯响应数据.
  2. 逻辑处理:负责业务逻辑处理的代码.
  3. 数据访问:负责业务数据的维护操作,包括增、删、改、查等操作。

在这里插入图片描述

  1. Controller:控制层。接收前端发送的请求,对请求进⾏处理,并响应数据。
  2. Service:业务逻辑层。处理具体的业务逻辑。
  3. Dao:数据访问层,也称为持久层。负责数据访问操作,包括数据的增、删、改、查.

MVC 和三层架构的区别和联系

MVC架构模式由三部分组成, 分别是: 模型(Model), 视图(View)和控制器(Controller).

三层架构将业务应⽤划分为:表现层, 业务逻辑层, 数据访问层.
在这里插入图片描述
MVC中, 视图和控制器合起来对应三层架构中的表现层. 模型对应三层架构中的业务逻辑层, 数据层,以及实体类。

MVC模式强调数据和视图分离, 将数据展⽰和数据处理分开, 通过控制器对两者进⾏组合.

三层架构强调不同维度数据处理的⾼内聚和低耦合, 将交互界⾯, 业务处理和数据库操作的逻辑分开

软件设计原则:⾼内聚低耦合.

⾼内聚指的是:⼀个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越⾼,则内聚性越⾼,即 “⾼内聚”。

低耦合指的是:软件中各个层、模块之间的依赖关联程序越低越好。修改⼀处代码, 其他模块的代码改动越少越好.
在这里插入图片描述

3 .应⽤分层的好处

  1. 降低层与层之间的依赖, 结构更加的明确, 利于各层逻辑的复⽤
  2. 开发⼈员可以只关注整个结构中的其中某⼀层, 极⼤地降低了维护成本和维护时间
  3. 可以很容易的⽤新的实现来替换原有层次的实现
  4. 有利于标准化

好了今天就到这里。


http://www.ppmy.cn/server/151135.html

相关文章

《外国服务区加油站模型:功能与美观的完美结合 caotu66.com》

这个外国服务区加油站模型在设计上独具特色,兼具实用性和美观性。 从整体布局来看,加油站位于服务区的显眼位置。加油站的顶棚采用了现代风格的设计,顶棚的颜色主要是黄色和蓝色,色彩鲜明且具有辨识度。顶棚下方有多个加油柱&…

文件上传—阿里云OSS对象存储

目录 一、OSS简介 二、OSS基本使用 1. 注册账号 2. 基本配置 (1) 开通OSS (2) 创建存储空间 (3) 修改权限 (4) 配置完成,上传一张图片,检验是否成功。 (5) 创建AccessKey 三、Java项目集成OSS 1. 导入依赖 2. Result.java代码: …

如何评估呼叫中心大模型呼入机器人的使用效果?(转)

如何评估呼叫中心大模型呼入机器人的使用效果?(转) 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 评估呼叫中心大模型呼入机器人的使用效果是一个多维度、综合性的任务,需要综合考虑多…

qt对话框小结

qt有一些封装好的对话框 现在小结一下 QMessageBox: 用于显示简单的消息。 QFileDialog: 用于文件和目录的选择。 QColorDialog: 用于颜色选择。 QFontDialog: 用于字体选择。 QInputDialog: 用于获取用户输入。 QProgressDialog: 用于显示操作进度。 QPrintDialog: 用…

ssm-springmvc-学习笔记

简介 简单的来说,就是一个在表述层负责和前端数据进行交互的框架 帮我们简化了许多从前端获取数据的步骤 springmvc基本流程 用户在原本的没有框架的时候请求会直接调用到controller这个类,但是其步骤非常繁琐 所以我们就使用springmvc进行简化 当用…

Cisco Packet Tarcer配置计网实验笔记

文章目录 概要整体架构流程网络设备互连基础拓扑图拓扑说明配置步骤 RIP/OSPF混合路由拓扑图拓扑说明配置步骤 BGP协议拓扑图拓扑说明配置步骤 ACL访问控制拓扑图拓扑说明配置步骤 HSRP冗余网关拓扑图拓扑说明配置步骤 小结 概要 一些环境配置笔记 整体架构流程 网络设备互连…

Python比较两个proto文件的差异

Python比较两个proto文件的差异 一、背景 在使用proto文件维护一些我们需要数据,因为迭代速度比较快,我们需要了解每一版本的变更需求,手动维护很容易搞错,而且如果因为其中一个版本没有维护变更信息就很容易出现一些信息对不齐的问题,为了解决这个问题,我使用Python开发…

人脸检测的若干思考!!!

1.目前主要有人脸检测方法分类? 主要包含两类:传统人脸检测算法和基于深度学习的人脸检测算法。 传统人脸检测算法主要可以分为4类: 基于知识、模型、特征和外观的人脸检测方法; 基于深度学习的方法:基于级联CNN的人脸…