目录
[一、Spring Boot的概念](#一、Spring Boot的概念)
[1.1 Spring的概念](#1.1 Spring的概念)
[1.2 为什么需要 Spring](#1.2 为什么需要 Spring)
[1.3 Spring Boot的概念](#1.3 Spring Boot的概念)
[1.4 为什么需要 Spring Boot?](#1.4 为什么需要 Spring Boot?)
[2.1 创建配置](#2.1 创建配置)
[2.2 目录介绍和项目代码](#2.2 目录介绍和项目代码)
[2.2.1 目录介绍](#2.2.1 目录介绍)
[2.2.2 pom.xml文件](#2.2.2 pom.xml文件)
[2.3 运行项目](#2.3 运行项目)
[2.4 输出 Hello world](#2.4 输出 Hello world)
[3.1 web服务器](#3.1 web服务器)
[3.2 请求响应分析](#3.2 请求响应分析)
[3.3 访问错误分析](#3.3 访问错误分析)
[3.3.1 404 错误](#3.3.1 404 错误)
[3.3.2 500错误](#3.3.2 500错误)
[3.3.3 无法访问此页面](#3.3.3 无法访问此页面)
一、Spring Boot的概念
在学习SpringBoot之前,我们先来认识一下Spring是什么
1.1 Spring的概念
Spring 是 Java 生态中最主流的企业级应用开发框架,它就像一个 "万能工具箱",帮你解决后端开发中的各种复杂问题(比如对象管理、事务控制、数据库交互等),让代码更简洁、灵活、易维护。
1.2 为什么需要 Spring
想象你开发一个电商系统,需要处理:
- 订单服务依赖支付服务,支付服务又依赖数据库连接 ------ 这些 "对象之间的依赖关系" 手动管理会很繁琐;
- 下单时要保证 "扣库存" 和 "创建订单" 要么同时成功,要么同时失败(事务)------ 手动控制事务代码会很冗余;
- 不同环境(开发、测试、生产)需要切换数据库配置 ------ 硬编码配置会导致频繁改代码。
Spring 就是为解决这些问题而生的,核心思想是**"简化开发"和"解耦"**。
我们把开发 Java 后端比作 "盖房子":
- 传统方式:你需要自己造砖、砌墙、铺水管、接电线(手动管理对象、事务、配置),效率低且容易出错;
- 用 Spring:相当于有了标准化的建材(预制板、现成水管电线)和施工框架(自动组装、统一标准),你只需专注于 "房子的设计"(业务逻辑),其他琐事交给框架。
同时Spring不只是一个框架,而是一个"生态体系"

我们可以看到Spring官网上的项目之多,涵盖了开发的方方面面,我们先开始学习Spring Boot
- Spring Boot:快速搭建 Spring 项目(自动配置,省去繁琐的 XML 配置);
1.3 Spring Boot的概念
Spring Boot 是 Spring 生态下的 "快速开发脚手架",它的核心目标是 "简化 Spring 应用的创建和配置",让开发者能快速搭建一个可运行的 Spring 项目,省去传统 Spring 中繁琐的 XML 配置和依赖管理工作。
1.4 为什么需要 Spring Boot?
在 Spring Boot 出现前,用传统 Spring 开发项目要做很多 "重复且无意义的工作":
- 手动导入一堆依赖(比如 Spring MVC、数据库驱动等),还得保证版本兼容;
- 写大量 XML 配置文件(比如配置数据库连接、视图解析器、事务管理器等);
- 手动整合各种框架(比如 Spring 与 MyBatis、Redis 等),容易出问题;
- 部署时需要自己打包成 WAR 包,再放到 Tomcat 里运行。
Spring Boot 就像 "开箱即用的工具箱",帮你解决这些问题,让你从 "配置工作" 中解放出来,专注写业务代码。
二、创建一个SpringBoot项目
2.1 创建配置


2.2 目录介绍和项目代码
2.2.1 目录介绍

Spring Boot 项⽬有两个主要的⽬录:
- src/main/java: Java 源代码
- src/main/resources: 为静态资源或配置⽂件:
- /static:静态资源⽂件夹,⽐如前期学的js,css,html等静态⽂件,不需要服务器数据进⾏绑定的⻚⾯
- /templates:模版资源⽂件夹,主要存放动态模板⽂件,⽐如JSP,Freemarker,Thymeleaf等需要服务器动态渲染数据的⽂件
- src/test/java:测试代码源代码
- target:编译后的⽂件路径
- pom.xml:maven配置⽂件
2.2.2 pom.xml文件
pom.xml的核心作用
pom.xml解决了两个核心问题:
- "项目需要哪些依赖" :比如开发 Spring Boot 项目需要引入
spring-boot-starter-web,开发数据库功能需要引入mysql-connector-java等,这些都在pom.xml中声明。 - "项目如何构建":比如项目打包成 JAR 还是 WAR、编译代码的 JDK 版本、输出的文件名等,都在这里配置。
pom.xml⽂件⾥的具体信息,不需要过度关注,我们主要看 <dependencies> 标签⾥⾯的内容
XML
<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>
dependencies 是依赖列表,里面每个 dependency 对应一个需要引入的库。
引入依赖后,Maven 会自动从远程仓库(如 Maven 中央仓库)下载对应的 JAR 包,并添加到项目的类路径中,无需手动复制 JAR 包。
这里的两个依赖
- spring-boot-starter-web:包含了web应⽤开发所需要的常⻅依赖
- spring-boot-starter-test:包含了单元测试所需要的常⻅依赖
2.3 运行项目
我们找到DemoApplication类运行

运行结果如下则为启动成功

这个类就是SpringBoot项目的启动类,这都是因为**@SpringBootApplication**这个注解

如果我们把这个注解删掉,则报错,无法正常启动项目了

2.4 输出 Hello world
我们现在要用Spring Boot实现让我们的程序和浏览器及用户的交互
我们写一个UserController类
java
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController()
@RequestMapping("/hello")
public class UserController {
@RequestMapping("/world")
public String sayHi(){
return "hello world";
}
}
创建好这个类之后我们可以运行项目,在浏览器输入URL网址http://127.0.0.1:8080/hello/world,此时就可以在浏览器看到hello world

这是URL网址的格式

http://127.0.0.1:8080/hello/world
|--------------|-----------------------------|
| http:// | 协议(Scheme) |
| 127.0.0.1 | 服务器地址(Host):127.0.0.1就是本机地址 |
| :8080 | 端口号(Port) |
| /hello/world | 接口路径(Path) |
三、项目运行分析
3.1 web服务器
浏览器和服务器两端进行数据交互,使用的是HTTP协议
浏览器通过HTTP协议向服务器发送请求,服务器通过HTTP协议向浏览器发送响应
WEB服务器就是对HTTP协议进行封装,程序员不需要对协议进行操作,不用自己写代码去解析HTTP协议,这让web开发更加便捷
我们常见的web服务器有:Apache,Nginx,IIS,Tomcat,Jboss等
而我们的额SpringBoot项目中已经内置了Tomcat服务器,所以我们无需配置,就可以直接运行
而Tomcat的默认端口号就是8080,所以我们上文的端口号就是对Tomcat进程的访问
3.2 请求响应分析
当我们在浏览器输入URL之后,就发起来请求,和服务器建立了连接

- 浏览器:
- 输入网址:http://127.0.0.1:8080/hello/world
- 通过IP地址127.0.0.1定位到需要请求服务的计算机,上文说到127.0.0.1是本机地址
- 通过端口号8080找到Tomcat进程
- /hello/world是请求资源的位置
- /hello:是类资源路径
- /world:是方法资源路径
所以输入这个网址就是向本地计算机的8080端口程序,获取位置是/hello/world的资源或数据
- 服务器:
- 接收到浏览器的发送的信息
- 在服务器中找到位置是/hello/world的资源
- 把资源发送给浏览器
3.3 访问错误分析

3.3.1 404 错误
- 当显示404的时候表示用户访问的资源不存在,大概率是URL路径写的不正确

显示404也有可能是程序里的注解写错了,比如我们把@RestController改成@Controller
java
@Controller()
@RequestMapping("/hello")
public class UserController {
@RequestMapping("/world")
public String sayHi(){
return "hello world";
}
}

3.3.2 500错误
服务器出现内部错误,⼀般是服务器的代码执⾏过程中遇到了⼀些特殊情况(服务器异常崩溃)会产⽣这个状态码
我们在方法中加上一句代码

重启服务器观察浏览器显示

向上图这样状态码显示500的情况,因为是服务器的问题,我们可以到服务器上看到错误日志

我们可以看到已经报错显示一个算数错误,不可以/0
3.3.3 无法访问此页面

这种情况往往是因为服务器没有运行起来,我们启动一下即可