Bili-Docs
技术工具编程开发

2小时急速上手SpringBoot(儿童版)

本视频是针对 SpringBoot 框架的快速入门教程,讲解了其简化 Java Web 开发的优势及基本概念。

UP主: 小麟NLER · 时长: 2h03m · 🔗 B站原视频

发布: 2023-05-08 · 收录: 2025-04-08

标签: SpringBoot · Java · 后端开发 · 编程入门

节奏说明:速度快一点,先把东西跑起来

个人难度说实话稍微有点大,因为我本身是考研的,时间可能有点对不上,所以就速度快一点。

有的教学方式是你们哪不会,他就下去绕一圈,看看哪不会帮你改一下。我不是这种,我速度会快一些。我持一个观点:当时学 Java Web 没人带,全是自己查,百度各种查。而且现在有 GPT,你把错误代码粘上去问“我这个代码哪错了”,它会给你一个差不多的答案,你跟着去查 bug,这也是提升能力很重要的方式。

单纯问的话印象不太深,但有时候卡一天两天做不出来,这时候最好问。能自己解决就一步一步排查问题。

Java Web、框架、专业课和为什么用 Spring Boot

Java Web 和别的语言的 Web 本质上都能写 Web 项目。Java Web 这块,底层配置很繁琐:配 Tomcat、配数据库、配 Java 环境、再搞启动,一堆东西配一天,十分钟写个应用代码,肯定不想这么搞。

所以直接上 Spring Boot。Boot 就是“快”,不需要大量配置,很快构建出项目。Spring 相当于给 Java 开发带来“春天”,把开发速度搞快了。现在很多 Java Web 开发基本都是走 Spring 系。

Spring / Spring MVC / MyBatis:SSM 三件套与 Spring Boot 的关系

先把概念简单捋一下:

  • Spring:核心是容器(IoC)。你写的类不一定要自己 new,Spring 可以托管。需要用的时候从容器里拿。
  • Spring MVC:做 Java Web 的关键组件之一。
  • MyBatis:ORM 框架,把表里的一行数据映射成一个对象,方便用面向对象方式操作。

传统找工作常说的 SSM(三件套)= Spring + Spring MVC + MyBatis。但这三件套配置比较繁琐,Spring Boot 把常用配置默认都给你配好了,能快速开发。默认配置一般够用,不够再改。

前端、后端是什么:后端就是“折腾数据”

前端是你能看到的页面(B 站、淘宝页面),负责展示和交互动效;后端给前端提供数据。页面骨架是前端搭好的,标题、头像、UP 名字、关注数这些数据是后端给的。

后端一直在和数据打交道:数据要么在内存,要么在数据库。初学阶段可以粗浅理解为“后端=搞数据”。

为什么学框架:答辩/课程项目加分

一些课程会要求做项目答辩,比如软工概论、框体项目(Swing/JavaFX)。如果你能连数据库、用框架,老师一般会加分。比如有人用 MyBatis 连数据库拿了 99 分,用原生 JDBC 可能就低一些。多用框架整活,效果明显。

工具准备:IDEA 版本建议与 Maven 镜像

必须有 IDEA。建议用 2022.3 以上,新 UI 好看一些。

为了下载依赖快,建议配置 Maven 阿里云镜像:

  1. IDEA 打开设置,找到 Maven 配置(settings.xml)。
  2. 在 settings.xml 里配置 \<mirror> 为阿里云镜像。
  3. 重启 IDEA。

原因:不配镜像从国外中央仓库下很慢,可能 20 分钟;用国内镜像可能 1 分钟。

创建 Spring Boot 项目:依赖选择

创建项目(Spring Initializr)时建议:

  • 构建工具:Maven
  • 语言:Java
  • JDK:不要死守 1.8。Boot 3 要求更高版本;不过视频里为了不翻车,示例用了 Boot 2.7.x + Java 8
  • 依赖(重点):
    • Spring Web(写 Web 必点)
    • JDBC API
    • MySQL Driver
    • Lombok(可选,但推荐)

版本选择上,尽量用稳定版,不用 snapshot/rc。

Maven 的核心:依赖(dependencies)怎么加、怎么刷新

pom.xml 里重点看 dependencies。外部库功能靠依赖引入。

找依赖的方式:

  1. 去 Maven Repository 搜(比如 fastjson)。
  2. 复制 Maven 坐标片段。
  3. 粘贴进 dependencies
  4. 在 IDEA 里点击 Maven 刷新/Reload,重新加载依赖。

项目结构与 target、clean、test 的作用

  • src/main:主代码
  • src/test:测试代码(单元测试)
  • 启动项目后会生成 target:编译后的 class 等文件。

Maven 的 clean 会清掉 target。

测试类可以用来跑某一段逻辑,验证写得对不对。

Spring IoC 容器:不 new,对象交给 Spring 托管

创建对象的方式有很多:new、反射等,但项目里类多了全靠人为控制会很繁琐。

Spring 的做法:

  • 类上加注解(如 @Component),让它进入 Spring 容器(Spring Bean)。
  • 需要用的时候用 @Autowired 注入。

这样你在 A 类里就能直接用 B 类的方法,这是 IoC 的核心概念。

Web 项目常见四层:Controller / Service / DAO / PO

开发 Web 常见分层:

  • Controller:接收 HTTP 请求,相当于门口
  • Service:业务层,做业务逻辑
  • DAO/Mapper:数据库操作抽象(增删改查)
  • PO/Entity:表的一行数据映射成对象(ORM 的那个对象)

请求进来:Controller → Service → DAO → 数据库。

数据库准备:小皮(phpstudy)与 Navicat 连接

MySQL 配环境麻烦,推荐用 phpstudy(小皮) 一键启动 MySQL。

管理数据库:

  • phpMyAdmin:网页版,能用但不太方便
  • Navicat:更顺手(视频里提到“抢先体验版”)

连接参数要记住:

  • host:localhost127.0.0.1
  • port:3306(MySQL 默认端口)
  • 用户:root
  • 密码:默认可能是 123456(但上服务器别用这种,容易被攻击)

建表示例:user 表(username/password)

建库建议用 utf8mb4 字符集。

建表 user:

  • username(唯一标识/主键)
  • password

主键保证唯一性。自动递增也提了,但示例里主键用 username。

Spring Boot 连接数据库:application.yml 配置

配置文件可用 propertiesyml,视频用 yml。

核心四项:

  • spring.datasource.username
  • spring.datasource.password
  • spring.datasource.url
  • spring.datasource.driver-class-name

MySQL 8 之后 driver 常用 com.mysql.cj.jdbc.Driver

url 格式示例:

jdbc:mysql://localhost:3306/你的数据库名

配置完启动 Application 类,能启动就说明连通了。

用 MyBatis-Plus:不写 SQL 也能增删改查

为了更省事,直接用 MyBatis-Plus(比原生 MyBatis 更快上手)。

实体类(PO)示例:

  • @TableName("user"):对应表名
  • @TableId:主键字段
  • @TableField("password"):对应列名
  • @TableField(exist = false):类里有字段但不映射数据库

Lombok 常用:

  • @Data
  • @AllArgsConstructor
  • @NoArgsConstructor

DAO(Mapper)示例:

  • 接口 UserDao extends BaseMapper\<UserPo>
  • @Mapper 标识

Service 层:注入 DAO,写增删改查方法

在 Service 类里:

  • @Service
  • @Autowired UserDao userDao

常见操作示例:

  • 插入:userDao.insert(new UserPo(username, password))
  • 根据主键删:userDao.deleteById(username)
  • 条件删:userDao.delete(new QueryWrapper\<UserPo>().like("username", "丁"))
  • 精准查一个:selectOne(new QueryWrapper\<UserPo>().eq("username", username))
  • 模糊查列表:selectList(new QueryWrapper\<UserPo>().like("username", "丁"))
  • 更新:先查出对象 → setPassword()update(对象, 条件wrapper)

Bug 怎么排查:看红色堆栈、复制关键报错去查

报错排查思路:

  1. 点堆栈里蓝色可跳转的位置,定位大概在哪出问题。
  2. 看最上面的异常信息(通常能提示原因)。
  3. 看不懂就复制关键 at ... 报错行去搜/问 GPT。

高级一点的方法是 Debug 打断点,一步一步看变量和流程。

对外提供接口:Controller 写 REST API

后端要给前端提供数据,需要暴露接口。

Controller:

  • @RestController
  • @RequestMapping 配路径
  • HTTP 方法:
    • POST:增
    • DELETE:删
    • PUT:改
    • GET:查

参数接收:

  • @RequestParam:从请求参数里取
  • @PathVariable:从路径里取(GET 常用)

返回统一格式:code / message / data,并转 JSON

接口返回一般统一结构:

  • code:比如 200 表示成功
  • message:提示信息
  • data:返回数据(可选)

视频里用 Map + Fastjson JSONObject.toJSONString(map) 统一转 JSON 字符串。

为了减少重复代码,可以封装一个 Result 工具类,做公共返回方法(解耦,少改重复代码)。

用 Apipost / Apifox 测接口:本地 8080

接口测试工具:Apipost 或 Apifox。

访问格式:

http://localhost:8080/接口路径

按不同接口选择对应方法(POST/DELETE/PUT/GET),传 username/password 等参数,看返回 JSON:

  • code=200 一般表示成功
  • 前端拿 data 做页面动态渲染(比如 B 站页面填充数据)

收尾:今天的范围

今天主要讲了:

  • Spring Boot 快速构建项目
  • Maven 依赖与镜像
  • 数据库连接与建表
  • MyBatis-Plus 增删改查
  • Controller 对外暴露接口
  • 统一返回 JSON、用工具测试接口

更深入的原理和更完整的项目写法,后面有机会再讲。

On this page