【JavaEE】Spring(1)


一、什么是Spring和SpringBoot

Spring是Java应用程序的开发框架,其目的就是为了简化Java开发;SpringBoot是在spring框架的基础上构建的一个快速开发框架,其作用是进一步简化Spring程序开发

二、SpringBoot项目

2.1 创建项目

1. 设置jdk版本、项目名称等信息

2. 添加相关依赖

3. 设置项目保存路径

点击Create后就创建好了一个springboot项目

进入到项目页面,里面有一个pom.xml文件,文件中的信息不需要过度关注,我们主要看<dependencies> 标签里面的内容

	<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

spring-boot-starter-web:包含web应用开发所需要的常用依赖

spring-boot-starter-test:包含单元测试所需要的常用依赖

2.2 介绍目录

这里主要介绍一下src路径下的目录:

  • src/main/java:写Java代码的地方
  • src/main/resources/static:静态资源文件夹,通常放一些html、css、js文件
  • src/main/resources/application.properties:配置文件(后面再说)
  • src/test/java:写测试代码(后面再说)

2.3 运行项目

在 src/main/java 目录下的 SpringBootDemo1Application 类:

@SpringBootApplication 注解的类代表一个启动类,运行启动类下的main方法就是运行整个springboot项目,运行后控制台显示如下:

2.4 web服务器

在网络中我们讲过,浏览器和服务器之间的交互用到的就是http协议

常见的web服务器有:Apache、Tomcat、Jboss等,而 springboot 内置了Tomcat服务器(端口号为8080),所以我们可以更方便的进行web开发,即可以通过使用springboot项目来实现和浏览器的交互

接下来我们通过编写代码,使其在浏览器上输出 Hello World

启动项目后,在浏览器的地址栏中输入:http://127.0.0.1:8080/hello

url中127.0.0.1是一个环回IP,当客户端和服务器在一个同一个主机上就会使用这个IP,8080是Tomcat服务器的端口号;这里我们只看一下浏览器中的效果,代码的讲解放在后面

2.5 状态码

我们在讲解http协议时介绍过状态码,接下来我们以开发的角度再理解一下个别状态码

2.5.1 404

404表示服务器找不到请求的网页或用户访问资源失败,有两种常见情况导致该错误

【1】 url拼写错误

【2】注解拼写错误

2.5.2 500

500一般情况下就是我们写的代码(服务器代码)出现了问题

@RestController
public class UserController {@RequestMapping("/ret")public int  ret() {int a = 10 / 0;return a;}
}

2.5.3 无法访问页面

这种一般是项目未启动

三、SpringMVC

3.1 什么是MVC

MVC是Model、View、Controller的简称,是一种软件架构设计模式,可以理解成一种思想

  • View(视图):用户看到并与之交互的界面
  • Controller(控制器):决定视图发来的请求需要用哪个模型处理,决定模型返回的处理结果用哪个视图进行返回
  • Model(模型):应用程序的主体部分,用来处理请求

3.2 什么是SpringMVC

MVC是一种思想,SpringMVC就是对这种思想的具体实现,除此之外他还是一个web框架
总结:SpringMVC是实现了MVC思想的web框架

SpringMVC实现MVC时,结合了自身的一些特点,下面这个图更合适一点:

在之前创建SpringBoot项目的时候就用到了SpringMVC框架

SpringBoot项目通过添加SpringMVC框架来实现web功能,web功能就是服务器和浏览器交互的过程中,服务器给浏览器提供的一些功能,比如:处理用户交互、传输数据等


🙉本篇文章到此结束,下篇文章将具体学习一下SpringMVC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4381.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库管理-第285期 Oracle 23ai:深入浅出向量索引(20250117)

数据库管理285期 20245-01-17 数据库管理-第285期 Oracle 23ai&#xff1a;深入浅出向量索引&#xff08;20250117&#xff09;1 HNSW事务支持解读 2 IVF分区支持解读 3 混合向量索引何时选择混合向量索引为何选择混合向量索引 总结 数据库管理-第285期 Oracle 23ai&#xff1a…

LabVIEW电源纹波补偿

在电子设备的电源管理中&#xff0c;电源纹波的存在可能会对设备的稳定性和性能产生负面影响。以某精密电子仪器的电源纹波补偿为例&#xff0c;详细阐述如何运用 LabVIEW 编写程序进行电源纹波补偿。将从电源纹波特点、测量采样、滤波、反馈控制等多个方面展开介绍。 ​ 电源…

Mousetrap:打造高效键盘快捷键体验的JavaScript库

Mousetrap&#xff1a;打造高效键盘快捷键体验的JavaScript库 前言 在当今快节奏的数字世界中&#xff0c;用户对Web应用的交互效率提出了更高的要求。 键盘快捷键作为一种提升操作便捷性和速度的有效手段&#xff0c;被广泛应用于各种应用中。 然而&#xff0c;实现一套稳定…

网络安全 | 什么是正向代理和反向代理?

关注&#xff1a;CodingTechWork 引言 在现代网络架构中&#xff0c;代理服务器扮演着重要的角色。它们在客户端和服务器之间充当中介&#xff0c;帮助管理、保护和优化数据流。根据代理的工作方向和用途&#xff0c;代理服务器可分为正向代理和反向代理。本文将深入探讨这两种…

STM32 学习笔记【补充】(十)硬件I2C读写MPU6050

该系列为笔者在学习STM32过程&#xff08;主线是江科大的视频&#xff09;中的记录与发散思考。 初学难免有所纰漏、错误&#xff0c;还望大家不吝指正&#xff0c;感谢~ 一、I2C 外设简介 I2C&#xff08;Inter-Integrated Circuit&#xff09;是一种多主多从的串行通信协议…

自定义提示确认弹窗-vue

最初可运行代码 弹窗组件代码&#xff1a; &#xff08;后来发现以下代码可运行&#xff0c;但打包 typescript 类型检查出错&#xff0c;可打包的代码在文末&#xff09; <template><div v-if"isVisible" class"dialog"><div class&quo…

TP4056锂电池充放电芯片教程文章详解·内置驱动电路资源!!!

目录 TP4056工作原理 TP4056引脚详解 TP4056驱动电路图 锂电池充放电板子绘制 编写不易&#xff0c;仅供学习&#xff0c;感谢理解。 TP4056工作原理 TP4056是专门为单节锂电池或锂聚合物电池设计的线性充电器&#xff0c;充电电流可以用外部电阻设定&#xff0c;最大充电…

图论DFS:黑红树

我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 往 {\color{Red} {\Huge 往} } 往 期 {\color{Green} {\Huge 期} } 期 文 {\color{Blue} {\Huge 文} } 文 章 {\color{Orange} {\Huge 章}} 章 DFS 算法&#xff1a;记忆化搜索DFS 算法&#xf…

深度学习中的张量 - 使用PyTorch进行广播和元素级操作

深度学习中的张量 - 使用PyTorch进行广播和元素级操作 元素级是什么意思&#xff1f; 元素级操作在神经网络编程中与张量的使用非常常见。让我们从一个元素级操作的定义开始这次讨论。 一个_元素级_操作是在两个张量之间进行的操作&#xff0c;它作用于各自张量中的相应元素…

什么是三高架构?

大家好&#xff0c;我是锋哥。今天分享关于【什么是三高架构?】面试题。希望对大家有帮助&#xff1b; 什么是三高架构? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 “三高架构”通常是指高可用性&#xff08;High Availability&#xff09;、高性能&#xff…

STL--list(双向链表)

目录 一、list 对象创建 1、默认构造函数 2、初始化列表 3、迭代器 4、全0初始化 5、全值初始化 6、拷贝构造函数 二、list 赋值操作 1、赋值 2、assign&#xff08;迭代器1&#xff0c;迭代器2&#xff09; 3、assign&#xff08;初始化列表&#xff09; 4、assig…

Vue3数据响应式原理

什么是数据响应式 当数据变化时&#xff0c;引用数据的函数&#xff08;副作用函数&#xff09;自动重新执行。 即数据触发了函数的响应&#xff0c;如&#xff1a;视图渲染中使用了某数据&#xff0c;数据改变后&#xff0c;视图跟着自动更新。 触发者&#xff1a;数据 响应者…

Spark RPC 学习总结

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;https://www.captainai.net/dongkelun 前言 本文从API层面学习总结Spark RPC,暂不涉及源码分析。 Spark 通信历史 最开始: …

Ubuntu20.04取消root账号自动登录的方法,触觉智能RK3568开发板演示

Ubuntu20.04默认情况下为root账号自动登录&#xff0c;本文介绍如何取消root账号自动登录&#xff0c;改为通过输入账号密码登录&#xff0c;使用触觉智能EVB3568鸿蒙开发板演示&#xff0c;搭载瑞芯微RK3568&#xff0c;四核A55处理器&#xff0c;主频2.0Ghz&#xff0c;1T算力…

C/C++内存管理(超详解)

目录 1.C/C内存分布 2.C语言动态内存管理 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 3.C动态内存管理 3.1new/delete操作内置类型 3.2new/delete操作自定义类型 3.3operator new与operator delete函数 3.4定位new表达式(placement-new) 1.C/C内存分布 内存中是如…

[Python学习日记-78] 基于 TCP 的 socket 开发项目 —— 模拟 SSH 远程执行命令

[Python学习日记-78] 基于 TCP 的 socket 开发项目 —— 模拟 SSH 远程执行命令 简介 项目分析 如何执行系统命令并拿到结果 代码实现 简介 在Python学习日记-77中我们介绍了 socket 基于 TCP 和基于 UDP 的套接字&#xff0c;还实现了服务器端和客户端的通信&#xff0c;本…

AIGC视频生成模型:Meta的Emu Video模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video&#xff0c;作为Meta发布的第二款视频生成模型&#xff0c;在视频生成领域发挥关键作用。 &#x1f33a;优质专栏回顾&am…

IO进程----进程

进程 什么是进程 进程和程序的区别 概念&#xff1a; 程序&#xff1a;编译好的可执行文件 存放在磁盘上的指令和数据的有序集合&#xff08;文件&#xff09; 程序是静态的&#xff0c;没有任何执行的概念 进程&#xff1a;一个独立的可调度的任务 执行一个程序分配资…

flutter 使用google_mlkit_image_labeling做图片识别

在AI横行的如今&#xff0c;相信大家或多或少都做过跟AI接轨的需求了吧&#xff1f;今天我说的是关于图片识别的需求&#xff0c;flutter的专属图片识别插件google_mlkit_image_labeling。 google_mlkit_image_labeling它是Google旗下的Google Cloud Vision API中分支出来的一部…

elasticsearch基础

分布式搜索引擎01 1. 初始elasticsearch 1.1. 了解ES 1.1.1. elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在github搜索代码&#xff1a; 在电…