什么是SpringMVC?简单好理解!

这篇具有很好参考价值的文章主要介绍了什么是SpringMVC?简单好理解!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🧸欢迎来到dream_ready的博客,📜相信您对这篇博客也感兴趣o (ˉ▽ˉ;)

📜表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

📜用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程

目录

1、SpringMVC是什么?

2、SpringMVC图解各部分详情

3、SpringMVC概念最新版(前后端不分离)

4、应用分层概念

什么是应用分层呢?(概念)

为什么需要应用分层?(了解即可)

5、如何分层(三层架构)  (具体实现)—— 重要!

6、MVC与三层架构的区别和联系


1、SpringMVC是什么?

SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分。简化开发,减少出错,方便组内开发人员之间的配合。

 以上是它的较为官方的概念,下面我将用大白话来诠释什么是SpringMVC

MVC就是把一个项目分成了三部分,如图:(下面目录2有详细解释)

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

MVC是一种思想,Spring进行了实现,称为SpringMVC(下面目录2有详细解释)

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

下面这张图片用于浏览器url直接发送请求时:(下面这张图不重要,主要记住上面的图)

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

SpringMVC当初在前后端不分离(比如JSP)的项目中大展拳脚

近些年来,由前后端分离等原因,SpringMVC的概念又发生了一些变化(下面目录3有详细解释)

2、SpringMVC图解各部分详情

MVC是思想,就是把一个项目分成了三部分

SpringMVC进行了实现,称为SpringMVC

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

  • Model模型层用来处理业务逻辑,处理数据,内部放置的是项目的逻辑以及方法的实现相关代码
  • Controller控制器层选择处理模型,选择视图,实现前后端交互是View层和Model层交流的桥梁
  • View层面向用户,用于界面显示,人机交互

用户的请求在View层接收后,发送到Controller层,Controller层交给对应的,能处理用户请求的Model层

  • View层相当于用户,Controller相当于前台,Model相当于各个部门
  • 用户带着要求来到前台(View),前台(Controller)听完用户要求后,将其交给对应的销售部、广告部等部门(Model)

下面这张图只是用户的请求直接发给了Controller控制器层,没有经过View层

比如浏览器url路径直接发送请求或者PostMan等工具发送请求时就更适用于下面这张图

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

3、SpringMVC概念最新版(前后端不分离)

当前阶段,MVC的概念又发生了一些变化,后端开发人员不涉及前端页面的开发,所以也就没有View层

所以View层又有了一层解释,之前返回的是视图,现在返回的是视图所需要的数据

例如:

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

4、应用分层概念

前言:

        类似公司的组织架构
        公司初创阶段,⼀个⼈⾝兼数职,既做财务,⼜做⼈事,还有⾏政.
        随着公司的逐渐壮⼤,会把岗位进⾏细分,划分为财务部⻔,⼈事部⻔,⾏政部⻔等,各个部⻔内部还会再进⾏细分.

        项⽬开发也是类似,最开始功能简单时,我们前后端放在⼀起开发,随着项⽬功能的复杂,我们分为前端和后端不同的团队,甚⾄更细粒度的团队。

        后端开发也会根据功能再进⾏细分.MVC就是其中的⼀种拆分⽅式.
        但是随着后端⼈员不再涉及前端,后端开发⼜有了新的分层⽅式.

什么是应用分层呢?(概念)

        应用分层是一种软件开发设计思想,它将应用程序分成N个层次,这N个层次分别负责各自的职责,多个层次之间协同提供完整的功能,根据项目的复杂度,把项目分成三层,四层甚至更多层

        常见的MVC设计模式,就是应用分层的一种具体体现

为什么需要应用分层?(了解即可)

         在最开始的时候,为了让项目快速上线,我们通常是不考虑分层的,但是随着业务越来越复杂,大量的代码混在一起,会出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题,所以学习对项目进行分层就是我们程序员的必修课了

5、如何分层(三层架构)  (具体实现)—— 重要!

        MVC就是一种标准的软件分层架构,但目前更主流的开发方式是“前后端分离”的方式,后端开发工程师不再需要关注前端的实现,所以对于Java后端开发者,又有了一种新的分层架构:把整体架构分为表现层(Controller)、业务逻辑层(Service)和数据层(Dao),这种分层方式也称之为“三层架构”

  • 表现层:就是展示数据结果和接受用户指令的,是最靠近用户的一层
  • 业务逻辑层:负责处理业务逻辑,里面有复杂业务的具体实现
  • 数据层:负责存储和管理与应用程序相关的数据

 这三个部分在Spring中的体现:

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

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven 

下面展示一张没有经过三层架构分层的代码:

解释代码意思(仅解释代码在干什么,分层解释在图下面,不在此处):

        此段代码用来查询书籍信息mockData是构建假数据,用来测试用

        如果书籍信息中的状态为1,则设置可借阅出去,不为1,则设置不可借阅出去

        最后将所有数据(books)返回

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

按照上面的层次划分,SpringMVC站在后端开发人员的角度上,也进行了支持,把上面的的代码划分为三个部分:

  • 请求处理、响应数据:负责、接收页面的请求,给页面响应数据
  • 逻辑处理:负责业务逻辑处理的代码
  • 数据访问:负责业务数据的维护操作,包括增、删、改、查

这三个部分在Spring的实现中均有体现,也就是刚才的Controller、Service、Dao

针对上述的分层思想,进行代码重构:

注:此处为了方便演示代码,左侧结构中没有进行前后端的完全分离,实际需要完全分离

Controller:

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

Service:

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

Dao:

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

可以明显看到,分层后,每个模块间的关系更加明确了然等好处

6、MVC与三层架构的区别和联系

        关于二者的关系,一直存在不同的观点,有人认为三层架构是MVC模式的一种实现,也有人认为MVC是三层架构的替代方案,等等各种说法都有,根本原因是大家站在不同的角度看待这个问题的,下面是我查询各种资料后总结出来的较为靠谱的观点

从概念上讲,二者都是软件工程领域中的架构模式

  • MVC模式架构由三部分组成,分别是:模型(Model),视图(View)和控制器(Controller)
  • 三层架构将业务应用划分为:表现层(Controller),业务逻辑层(Service),数据访问层(Dao)

什么是SpringMVC?简单好理解!,spring boot,后端,java,java-ee,intellij-idea,spring,maven

MVC中,视图和控制器合起来对应三层架构中的表现层,模型对应三层架构中的业务逻辑层,数据层,以及实体类

二者其实是从不同角度对软件工程进行了抽象

  • MVC模式强调数据和视图分离,将数据展示和数据分离分开,通过控制器对两者进行结合
  • 三层架构强调不同维度数据处理的高内聚和低耦合,将交互界面,业务处理和数据库操作的逻辑分开。

角度不同也就谈不上互相替代了,在日常的开发中可以经常看到两种共存的情况,比如我们设计模型层的时候往往也会拆分出业务逻辑层(Service层)和数据访问层(Dao层)

但是二者的目的是相同的,都是“解耦,分层,代码复用”

🧸欢迎您于百忙之中阅读这篇博客,📜希望这篇博客给您带来了一些帮助,祝您生活愉快!文章来源地址https://www.toymoban.com/news/detail-722316.html

到了这里,关于什么是SpringMVC?简单好理解!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 拆解Spring boot:Springboot为什么如此丝滑而简单?源码剖析解读自动装配

    🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.csdn

    2024年03月23日
    浏览(44)
  • 【手撕Spring源码】深度理解SpringMVC【上】

    既然我们讨论SpringMVC那么就必然绕不开一个东西叫做DispatcherServlet。 DispatcherServlet是SpringMVC的核心Servlet,也叫做前端控制器。它的主要作用是调度请求并将请求分发给相应的处理器。 我们要注意: DispatcherServlet由Servlet容器创建,并且它的生命周期也是Servlet那套体系由Servle

    2024年02月07日
    浏览(41)
  • 2023 最新版IntelliJ IDEA 2023.1创建Java Web前(vue3)后端(spring-boot3)分离 项目详细步骤(图文详解)

    2023 最新版IntelliJ IDEA 2023.1创建Java Web 项目详细步骤(图文详解) 本篇使用当前Java Web开发主流的spring-boot3框架来创建一个Java前后端分离的项目,前端使用的也是目前前端主流的vue3进行一个简单的项目搭建,让你距离Java全栈开发更近一步 🏴‍☠️。 使用版本: “17.0.1”

    2024年02月12日
    浏览(88)
  • Spring Boot 整合 Shiro(后端)

    1 Shiro 什么是 Shiro 官网: http://shiro.apache.org/ 是一款主流的 Java 安全框架,不依赖任何容器,可以运行在 Java SE 和 Java EE 项目中,它的主要作用是对访问系统的用户进行身份认证、 授权、会话管理、加密等操作。 Shiro 就是用来解决安全管理的系统化框架。 2 Shiro 核心组件 用

    2024年02月09日
    浏览(51)
  • 简单易懂的理解java开发中的 DO、BO、DTO、VO、AO都是什么✌

    这些只是开发的规范,规范就是建议遵守的,大家都这样做,长期以来就形成了一种开发规范,便于我们开发。 DO、BO、DTO、VO、AO他们都是普 通的Java类 ,只不过通常我们把他们放在DO、BO、DTO、VO、AO名的包下,结尾以DO、BO、DTO、VO、AO命名放在这些包下的类。 有时DO也会放在

    2024年02月01日
    浏览(39)
  • Android前端+Spring Boot后端 登录功能实现

    创建项目后,自己添加包,框架如下   userController里的一些内容,只供参考,代码不全,无法实现 数据库是直接在社区版IDEA里连接Mysql,在控制台端创建的数据库和user表,用于数据交互。 Activity包里是Activity Java类,主要响应layout包里activity_login.xml等页面布局内的按钮响应 a

    2024年02月12日
    浏览(71)
  • 【Spring Boot】(三)深入理解 Spring Boot 日志

    在现代软件开发中, 日志是一项至关重要的工具,它记录了应用程序运行过程中的关键信息,当程序运行出现错误的时候,可以帮助开发人员快速识别和解决存在的问题 。通过合理的日志记录,能够帮助我们更好地了解应用程序的运行情况,从而提高应用程序的稳定性和可

    2024年02月14日
    浏览(43)
  • React.js前端 + Spring Boot后端员工管理

    该项目是一个员工管理系统,前端使用 React.js 构建,后端使用 Spring Boot 和 Data JPA 和 Lombok 构建。它提供了有效管理员工信息的全面解决方案。 特征 响应式设计:响应式 UI 设计,确保跨各种设备的可用性。 数据验证:验证用户输入以确保数据完整性。 使用的技术 前端:R

    2024年04月28日
    浏览(50)
  • 后端进阶之路——深入理解Spring Security配置(二)

    「作者主页」 :雪碧有白泡泡 「个人网站」 :雪碧的个人网站 「推荐专栏」 : ★ java一站式服务 ★ ★ 前端炫酷代码分享 ★ ★ uniapp-从构建到提升 ★ ★ 从0到英雄,vue成神之路 ★ ★ 解决算法,一个专栏就够了 ★ ★ 架构咱们从0说 ★ ★ 数据流通的精妙之道★ ★后端进

    2024年02月14日
    浏览(53)
  • spring和springboot、springMVC有什么区别?

    大家好,我是chowley,今天来聊一下,刚在面试中被问到的一个经典问题 Spring、Spring Boot 和 Spring MVC 是 Spring Framework 生态中的不同组件,各自有不同的角色和功能。以下是它们的主要区别: Spring Framework: 角色: Spring Framework 是一个全面的企业级应用开发框架,提供了一整套

    2024年01月23日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包