当前位置: 首页 > news >正文

【后端开发】SpringBoot与Spring MVC

文章目录

  • 创建项目
  • 目录介绍
  • Spring MVC
    • servlet
    • MVC
    • Spring MVC
      • Springboot与Spring MVC的区别
      • Spring MVC交互

创建项目

新建一个Springboot项目
在这里插入图片描述
对应描述
在这里插入图片描述

目录介绍

src/main/java:Java 源代码
src/main/resources:为静态资源或配置⽂件:
----/static:静态资源⽂件夹,⽐如前期学的js, css, html等静态⽂件,不需要服务器数据进⾏绑定的页面
----/templates:模版资源⽂件夹,主要存放动态模板文件,⽐如JSP, Freemarker,Thymeleaf等需要服务器动态渲染数据的⽂件
src/test/java:测试代码源代码
target:编译后的⽂件路径
pom.xml:maven 配置⽂件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Spring MVC

Spring MVC:全称为 Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在Spring框架中。

servlet

Servlet是⼀种实现动态页面的技术,准确来讲Servlet是⼀套Java Web 开发的规范。

Servlet规范是开放的,除了Sun公司,其它公司也可以实现Servlet规范,⽬前常⻅的实现了Servlet规范的产品包括 Tomcat 、 Weblogic 、Jetty 、Jboss 、WebSphere 等,它们都被称为"Servlet容器"。

MVC

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分。

View(视图):指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源
Model(模型):是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分.
Controller(控制器):可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型
在这里插入图片描述

Spring MVC

Spring MVC 就是对MVC思想的具体实现,除此之外,Spring MVC还是⼀个Web框架。
在这里插入图片描述

如何创建:在创建Springboot项目的过程中,添加Spring Web依赖。

Springboot与Spring MVC的区别

Springboot是2014年发布的,Spring是2004年发布的,在2014年发布之前,就不能⽤Spring实现MVC架构吗?
显然不是这样的,Springboot只是实现Spring MVC的其中⼀种⽅式⽽已。
Springboot可以添加很多依赖,借助这些依赖实现不同的功能,Springboot通过添加Spring Web MVC框架,来实现web功能。

需要记住的是Spring MVC是一种思想,这种思想可以有很多方式来实现,而SpringBoot就是其中的一种。

⽐如:厨房可以⽤来做饭,但真实实现做饭功能的是火以及各种做饭相关的⻝材和⼯具。
厨房就好⽐是Springboot,厨房可以装柜子,实现收纳功能,装燃⽓灶等,实现做饭功能,做饭这个事,就是MVC,在⼏千年前,有⽕有⻝材就可以实现做饭。

Spring MVC交互

建⽴连接:将用户(浏览器)和Java程序连接起来,也就是访问⼀个地址能够调⽤到我们的Spring程序。
请求:用户请求的时候会带⼀些参数,在程序中要想办法获取到参数,所以请求这块主要是获取参数的功能。
响应:执⾏了业务逻辑之后,要把程序执⾏的结果返回给用户,也就是响应。

http://www.dtcms.com/a/122822.html

相关文章:

  • Nacos 健康检查是如何实现的?支持哪些健康检查协议?
  • AI搜索+法律咨询:在「事实重构」与「程序正义」的博弈场‌
  • c#的form实现叠叠乐游戏
  • Git 中回退版本后修改并提交
  • HarmonyOS Next~鸿蒙系统原生流畅性创新解析:预加载技术与全栈优化的革命性突破
  • Docker中Redis修改密码失效
  • ISIS单区域抓包分析
  • 常微分方程求解全解析:从基础到矩阵方法深度实践
  • Vue 3 + Element Plus 快速入门教程
  • ansible 实现达梦7数据库初始化数据脚本写入
  • docker使用
  • 2025年项目管理工具TOP10:Gitee引领技术驱动新浪潮
  • 【 C# 使用 MiniExcel 库的典型场景】
  • 开源免费虚拟化平台PVE软件定义网络
  • BGP路由协议之对等体
  • Containerd介绍
  • C++中如何在一个字符串中的任何一个位置插入字符或者字符串--insert()函数实现
  • Python星球日记 - 第18天:小游戏开发(猜数字游戏)
  • 前端视频流技术深度解析
  • Python爬虫教程011:scrapy爬取当当网数据开启多条管道下载及下载多页数据
  • 香港服务器租用对分布式计算的作用
  • Vue3中父组件将一个ref定义的对象类型传递给子组件的解包机制
  • 用Python构建区块链健康数据管理系统——隐私与信任的新纪元
  • python——正则表达式
  • vue3中defineProps的使用说明
  • Python 实现的运筹优化系统数学建模详解(0-1规划背包问题)
  • PHP:从诞生到未来的Web开发利器
  • 数据结构和大数据处理及其加密算法
  • SMB 协议
  • uniApp 设置动态tabs(不是自定义tab哈)