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

【Spring】Spring Boot 快速入门

封面

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!


小杨近些在学习人工智能方面的知识,发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

  • 1. SpringBoot 介绍
  • 2. SpringBoot 项目的创建
    • 2.1 使用idea创建
    • 2.2 网页版创建(了解)
  • 3. 项目代码和目录介绍
    • 3.1 父工程
    • 3.2 目录介绍
  • 4. 运行项目
  • 5. 输出 Hello world
  • 6. Web 浏览器
  • 7. 请求响应流程分析

1. SpringBoot 介绍

在学习 SpringBoot 之前,我们先认识一个Spring
官网介绍:
image.png
可以看到,Spring 让 Java 编程变得更快、更容易、更安全。Spring对速度、简单性和生产力的关注使其成为世界上最受欢迎的Java框架。
Spring 官方提供了很多开源的项目,覆盖范围从 Web 开发到大数据,Spring 发展到今天,已经形成了自己的生态圈。我们在开发时,也倾向于使用 Spring官方提供的技术,来解决对应的问题。
image.png
这戏项目都是基于 Spring Framework来进行开发的,但是 Spring Framework 存在配置多,入门难的问题, Spring 也意识到了这个问题,为了简化开发者的使用,从而创造性的推出了 SpringBoot。
SpringBoot的诞生是为了简化 Spring 程序的开发
SpringBoot 翻译一下就是 Spring 脚手架,什么是脚手架呢?
image.png
盖房子的这个架子就是脚手架,脚手架的作用是砌筑砖墙,浇筑混凝土、方便墙面抹灰,装饰和粉刷的,简单来说,就是使用脚手架可以更快速的盖房子.
SpringBoot就是Spring 框架的脚手架,它是为了快速开发 Spring 框架而诞生的。

2. SpringBoot 项目的创建

2.1 使用idea创建

File -> New ->Project
image.png
添加依赖
image.png
点击 Create 就完成 SpringBoot 的项目创建了。
注意:

第⼀次打开 SpringBoot 项目需要加载很久,因为当前 SpringBoot 框架并没有在自己的本地仓库.
为了加速 SpringBoot 项目的下载,在打开项目之前,请先确认自己的 Maven 已经配置为国内源

2.2 网页版创建(了解)

不使用 Idea 也可以创建 SpringBoot 项目,我们可以使用 Spring 官方提供的网页版来创建 SpringBoot 项目
链接🔗:
image.png
点击生成按钮会下载一个 SpringBoot 的 zip 包,解压 zip 之后目录如下:
image.png
然后再使用 Idea 打开之后,SpringBoot 项目就算创建成功了.

3. 项目代码和目录介绍

观察pom.xml文件
image.png
pom.xml文件中,引入了两个依赖

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖

3.1 父工程

我们发现这个依赖没有指定具体的版本号,但是我们的 jar包也正常引入项目中了,并且查看的话,是有版本号的。
image.png
我们来看看本地仓库的jar包是否下载下来了?
image.png
也下载下来了。
为什么没有指定<version>,程序也可以正常运行呢?
因为每⼀个SpringBoot工程,都有⼀个父工程. 依赖的版本号,在父工程中统⼀管理
父工程指定版本号后, 就会自动引入和所指定版本对应的依赖, 创建的SpringBoot项目, 会继承 SpringBoot父工程
image.png

3.2 目录介绍

image.png
SpringBoot 项目目录:

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

4. 运行项目

image.png
点击启动类的 main 方法就可以运行 SpringBoot 项目了,启动成功如下图所示:
image.png

5. 输出 Hello world

接下来我们要用 SpringBoot 来实现和浏览器及用户的交互
创建HelloController文件,代码如下:

package com.xiaoyang.Test;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping("/hello")public String hell() {return "hello SpringBoot";}
}

启动项目,访问 http://127.0.0.1:8080/hello,最终效果如下:
image.png

6. Web 浏览器

浏览器和服务器两端进行数据交互,使用的是 HTTP 协议
image.png
HTTP 协议就是 HTTP 客户端和 HTTP 服务端之间的交互数据格式。
Web 服务器就是对HTTP协议进行封装, 程序员不需要直接对协议进行操作(自己写代码去解析http协议规则),让Web开发更加便捷, 所以Web服务器也被称为WWW服务器, HTTP服务器, 主要功能是提供网上信息浏览服务
常见的Web服务器有: Apache,Nginx, IIS, Tomcat, Jboss等
SpringBoot 内置了Tomcat服务器, 无需配置即可直接运行
image.png
Tocmat 默认端口号是8080, 所以我们程序访问时的端口号也是8080

7. 请求响应流程分析

浏览器输入URL之后,发起请求,就和服务器之间建立了联系
浏览器:
输入网址:http://127.0.0.1:8080/hello

  • 通过IP地址 127.0.0.1定位到网络上的一台计算机,127.0.0.1就是本机
  • 通过端口号 8080 找到计算机上对应的进程,也就是本地计算机中找到计算机正在运行的8080端口的程序
  • /hello是请求资源的位置
    • 资源:对计算机而言资源就是数据
    • Web资源:通过网络可以访问到的资源(通常是指存放在服务器上的数据)

服务器:

  • 接收到浏览器发送的信息(如:/hello
  • 在服务器上找到/hello的资源
  • 把资源发送

image.png


相关文章:

【Spring】Spring Boot 快速入门

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…...

Go自定义数据的序列化流程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

贪心算法练习题(2024/6/18)

什么是贪心 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 贪心算法一般分为如下四步&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 1分发饼干 假设你是一位很棒的家长&#xff0c…...

4.1 四个子空间的正交性

一、四个子空间的正交性 如果两个向量的点积为零&#xff0c;则两个向量正交&#xff1a; v ⋅ w v T w 0 \boldsymbol v\cdot\boldsymbol w\boldsymbol v^T\boldsymbol w0 v⋅wvTw0。本章着眼于正交子空间、正交基和正交矩阵。两个子空间的中的向量&#xff0c;一组基中的向…...

RabbitMQ实践——使用WebFlux响应式方式实时返回队列中消息

大纲 Pom.xml监听队列实时返回消息测试完整代码工程代码 在之前的案例中&#xff0c;我们在管理后台收发消息都是通过短连接的形式。本文我们将探索对队列中消息的实时读取&#xff0c;并通过流式数据返回给客户端。 webflux是反应式Web框架&#xff0c;客户端可以通过一个长连…...

SpringBoot前后端传递数据时常用的JSON格式数据是什么?【讲解JSON概念、语法、以及Java对象互转】

SpringBoot前后端传递数据时常用的JSON格式数据是什么&#xff1f; JSON概念JSON语法JSON的两种结构&#xff1a;JSON字符串和Java对象互转&#xff1a;objectMapper.writeValueAsString(person);objectMapper.readValue(jsonStr,Person.class); 在SpringMVC框架中&#xff0c;…...

mysql学习——SQL中的DQL和DCL

SQL中的DQL和DCL DQL基本查询条件查询聚合函数分组查询排序查询分页查询 DCL管理用户权限控制 学习黑马MySQL课程&#xff0c;记录笔记&#xff0c;用于复习。 DQL DQL英文全称是Data Query Language(数据查询语言)&#xff0c;数据查询语言&#xff0c;用来查询数据库中表的记…...

windows系统上nginx搭建文件共享

1、下载windows版nginx 下载地址 2、配置nginx 编辑nginx.conf配置文件 在http模块下添加这个参数 underscores_in_headers on;#修改location内容&#xff0c;共享哪个文件夹&#xff0c;就写哪个文件夹&#xff0c;最后一定要跟上/&#xff0c;否则无法访问 location / {…...

星闪指向遥控,做家电交互的破壁人

“面壁者罗辑&#xff0c;我是你的破壁人。” 科幻小说《三体》中&#xff0c;当人类的基础科学被三体人封锁&#xff0c;变得停步不前&#xff0c;人类启动了自救的面壁计划&#xff0c;通过一次又一次破壁&#xff0c;找到战胜三体人的办法。 现实中&#xff0c;有一点已经成…...

SpringBoot使用AutoConfigure实现依赖库自动导入配置

我们知道导入配置有两种&#xff0c;一种是Value&#xff0c;一种是ConfigurationProperties&#xff0c;将对应的类标记为Component即可导入。但是被注解标识的类创建Bean有一个前提&#xff0c;只对启动类所在的包路径下的所有带有Component等注解的类才会创建Bean。如果我们…...

QT中利用动画弄一个侧边栏窗口,以及贴条效果

1、效果 2、关键代码 void Widget::on_sliderBtn_clicked() {m_sliderWidget->show();QPropertyAnimation* animation = new QPropertyAnimation(m...

win10免安装配置MySQL8.4.0

注&#xff1a;此教程基于win10 22H2 版本 1、下载最新版本MySQL压缩包 下载链接&#xff1a;MySQL官网下载地址 点击第二行的 ZIP Archive 后面的Download&#xff08;当前时间2024-06-19最新版本是8.4.0&#xff09; 2、解压并添加配置文件 下载完毕后&#xff0c;解压缩…...

VS Code安装及环境配置(超详细)

VS Code简介 Visual Studio Code&#xff08;简称 VS Code &#xff09;是 Microsoft 于2015年4月发布的一款代码编辑器&#xff0c;以界面简洁、轻量著称。 它是一款免费开源的现代化轻量级代码编辑器&#xff0c;支持几乎所有主流开发语言的语法高亮、智能代码补全、自定义…...

shell脚本通过解析日志使用串口开关屏知识点整理

#!/bin/bash #logPath 写日志的存放路径 #logPath/home/workspace/tvs/trainborne logPath/home/firefly tmpFile$$ function getLogName() { #echo "$logPath/LCDController_"date "%Y%m%d000000.log" echo "LCDController_20240424000000.log&quo…...

速盾:视频cdn和网站cdn的相同点与不同点

CDN&#xff08;Content Delivery Network&#xff09;是一种分布式网络架构&#xff0c;旨在为用户提供高效、高质量的内容传送服务。CDN主要通过将内容分发到全球各地的边缘节点&#xff0c;并根据用户的地理位置选择最近的节点来提供内容&#xff0c;从而加速内容的传输并降…...

37.自定义协议

自定义协议要素 1.魔数:用来第一时间判定是否是无效数据包。 2.版本号:主持协议升级。 3.序列化算法:消息正文到底采用那种序列化方式,可以由此扩展,例如:json,protobuf(google的序列化算法,基于二进制,虽然可读性不好,但是字节数占用更少),hessian(基于二进制)…...

【React Native】measureInWindow在安卓上无法正确获取View在屏幕上的布局信息

问题描述&#xff1a; 在React Native中&#xff0c;我们可以使用measureInWindow的方式去获取一个View在屏幕中的位置信息&#xff1a; 下面这个Demo中&#xff0c;我们写了一个页面HomePage和一个列表项组件ListItemA&#xff0c;我们期望每过5s监测一次列表中每一项在屏幕中…...

C++ 教程 - 04 类的使用

文章目录 类的定义类定义案例构造函数 类的定义 C 在 C 语言的基础上增加面向对象编程&#xff0c;类是用于指定对象的形式&#xff0c;是一种用户自定义的数据类型&#xff0c;封装了数据和函数。类可以被看作是一种模板&#xff0c;可以用来创建具有相同属性和行为的多个对象…...

excel按模板文件导出多个文件并压缩为ZIP格式返回前端

思路&#xff1a;先准备好模板文件和与之对应的实体类&#xff0c;数据库数据等&#xff0c;还是之前思路&#xff0c;根据查出的数据&#xff0c;填充模板文件&#xff0c;生成一个临时文件&#xff0c;最后将这些个临时文件打包为zip返回前端&#xff0c;并将多个临时文件删除…...

自动驾驶仿真测试用例表格示例 ACC ELK FCW

自动驾驶仿真测试用例表格示例 测试用例概览 本测试用例表格涵盖了自动驾驶系统中多个关键功能和场景的测试&#xff0c;旨在确保系统在不同条件下的表现和稳定性。 用例编号测试项目测试描述预期结果实际结果通过/失败TC-001ACC功能测试在高速公路上启用ACC&#xff0c;测试车…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...