JavaEE进阶——Spring Boot项目
目录
一、Spring Boot的概念
1.1 Spring的概念
1.2 为什么需要 Spring
1.3 Spring Boot的概念
1.4 为什么需要 Spring Boot?
二、创建一个SpringBoot项目
2.1 创建配置
2.2 目录介绍和项目代码
2.2.1 目录介绍
2.2.2 pom.xml文件
2.3 运行项目
2.4 输出 Hello world
三、项目运行分析
3.1 web服务器
3.2 请求响应分析
3.3 访问错误分析
3.3.1 404 错误
3.3.2 500错误
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> 标签⾥⾯的内容
<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类
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
@Controller()
@RequestMapping("/hello")
public class UserController {@RequestMapping("/world")public String sayHi(){return "hello world";}
}

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

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

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

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

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