一、SpringBoot介绍
- Spring 框架的定位
- 是全球最流行的 Java 框架,特点是让 Java 开发更快速、简单、安全,覆盖 Web 开发、大数据等领域,形成了自身技术生态圈。
- Spring Boot 的诞生背景
- Spring Framework 存在配置繁琐、入门难度高的问题,因此 Spring 官方推出 Spring Boot,以简化 Spring 项目的开发流程。
- Spring Boot 的核心作用
- 作为 Spring 框架的 "脚手架",通过预设配置、简化流程,帮助开发者快速搭建并启动 Spring 应用,大幅提升开发效率。
补充:Spring Boot 是 Spring 生态中的核心项目之一,除它之外,Spring 生态还包含 Spring Data(统一数据访问)、Spring Cloud(微服务开发)等项目,各项目基于 Spring Framework 实现不同场景的功能支持。
二、⽬录介绍

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

- 启动类的自动生成 正常通过 Spring Initializr(官网 / IDEA 插件)创建 Spring Boot 项目时,会自动生成一个带有
@SpringBootApplication注解的启动类 (默认类名一般是 "项目名 + Application",比如这里的DemoApplication)。 - 启动类的数量 一个 Spring Boot 项目通常只需要一个启动类 (因为
@SpringBootApplication包含了自动配置、组件扫描等核心功能,多启动类可能导致配置冲突)。特殊场景下(如多模块项目)可能有多个,但一般项目中保持一个即可。 - 服务启动的要求 每次启动 Spring Boot 服务,必须通过启动类的
main方法(或对应的启动命令)来启动------ 只有启动类执行后,Spring 容器才会初始化、加载配置并启动服务。 - 包扫描规则 :默认只扫描启动类所在包(如启动类在
com.demo,则com.demo.controller/com.demo.service会被扫描,com.other不会),如需扫描外部包,需手动配置:

四、输出Hello world


1. 核心注解作用
-
@RestController:这是 Spring 的 "控制器注解 ",同时包含了**@Controller** (标记这是控制器类和**@ResponseBody** (让方法返回的内容直接作为响应体,比如这里返回字符串"Hello World",前端就能直接收到这个文本)。 -
@RequestMapping:用来 "绑定请求路径 ",可以用在类上 或方法上:- 类上的
@RequestMapping("/user"):给这个控制器的所有方法统一加一个 "路径前缀"; - 方法上的
@RequestMapping("/u1"):是当前方法的 "路径后缀"。
- 类上的
2. 最终访问路径
这个u1()方法的完整访问路径 是:类路径前缀 + 方法路径后缀 → http://你的服务器地址:端口/user/u1。
比如你的项目启动在本地 8080 端口,访问http://localhost:8080/user/u1,就能触发u1()方法,前端会收到响应内容"u1"。
- 类上的 @RequestMapping 是 "公共路径" :相当于给这个控制器下的所有方法 "统一开头",避免每个方法都写重复的路径(比如所有用户相关接口都以
/user开头); - 方法上的 @RequestMapping 是 "专属路径":区分同一个控制器下的不同方法,是访问具体功能的 "最后一段路径";
- 必须 "前缀 + 后缀" 完整匹配 :只访问前缀(
/user)会报错,因为没有方法对应这个路径;只有加上方法的后缀,才能精准找到要执行的方法。
3. 对应 "建立连接 - 请求 - 响应" 的流程
- 建立连接 :Spring 启动后,会自动扫描
@RestController类 ,把@RequestMapping的路径和方法 "注册" 到请求映射表中; - 请求 :前端 发
/user/m1的请求,Spring 根据路径找到对应的m1()方法; - 响应 :
m1()返回"m1",Spring 把这个字符串作为 HTTP 响应的内容返回给前端。
五、Web服务器

1.Web 服务器
- 核心作用 :
- 封装 HTTP 协议,简化开发(无需手动解析 HTTP 规则)
- 也称为 WWW 服务器 / HTTP 服务器,提供信息浏览服务
- 常见类型 :
- Apache、Nginx、IIS、Tomcat、JBoss 等
- SpringBoot 与 Tomcat :
- SpringBoot 内置 Tomcat 服务器,无需额外配置即可运行
- Tomcat 默认端口为 8080,程序访问端口与之对应
2.请求响应流程
- 流程概述:浏览器输入 URL → 建立连接 → 发送请求 → 服务器处理 → 返回响应
- URL 解析(以
http://127.0.0.1:8080/user/u1为例) :127.0.0.1:本地 IP 地址,定位到本机8080:端口号,找到本机运行的对应程序进程/user/u1:请求的资源路径,对应服务器中存储的数据
- 服务器处理步骤 :
- 接收请求信息(如
/user/u1) - 查找对应资源
- 将资源返回给浏览器
- 接收请求信息(如
补充说明
- 127.0.0.1 是本地回环地址,仅用于本机内部通信,无法被外部网络访问
- Web 资源指可通过网络访问的服务器数据
五、访问出错怎么办
一、404 错误的定义
表示用户访问的资源不存在,通常原因是 URL 路径书写错误。
2.常见错误实例
- URL 路径拼写错误
- 例如:将正确路径(如
/sayhi)误写为/sayHi1,导致服务器无法匹配对应资源。
- 例如:将正确路径(如
- 代码注解(路由)错误
- 例如:Controller 中
@RequestMapping("/sayhi")的路径,与实际访问的 URL(如/sayHi)大小写 / 拼写不一致,造成路由映射失败。
- 例如:Controller 中
3.错误表现
访问后会显示 "Whitelabel Error Page",并标注type=Not Found, status=404。
补充说明
可通过 Fiddler 等工具抓包分析 HTTP 请求,进一步定位路径匹配问题。
二、500 错误的定义
表示服务器内部错误,通常是服务器代码执行过程中出现异常(如逻辑错误、运行时异常)导致的。
1.错误实例与表现
- 错误场景 :代码中存在运行时异常(如示例中
int res = 10/0;的 "除数为 0" 算术异常)。 - 页面表现 :访问后显示 "Whitelabel Error Page",标注
type=Internal Server Error, status=500。 - 后端提示 :程序控制台会输出异常调用栈 ,明确异常类型(如
ArithmeticException: / by zero)、出错文件(如UserController.java)及行号(如第 11 行)。
2.排查与解决
通过后端控制台的异常信息,定位到具体代码行,修复对应的逻辑错误(如避免除数为 0)即可。
三、无法访问此网站的定义
1.问题定义与原因
该问题表现为浏览器提示 "无法访问此网站"(如127.0.0.1拒绝了连接请求),核心原因是Tomcat 服务器未成功启动,常见触发场景包括:
- Tomcat 本身启动失败;
- 访问的 IP / 端口号填写错误。
2.辅助排查工具
通过 Fiddler 抓包可看到明确错误提示(如ConnectionRefused (0x274D)),进一步确认是目标计算机拒绝连接。
3.解决思路
- 检查 Tomcat 启动状态,重启服务器;
- 核对访问 URL 中的 IP 和端口号是否与 Tomcat 配置一致。
六、总结
1.问题排查小结
- 学习重点 :学习 Spring 时,除了代码写法,更需掌握错误排查思路(经验丰富的开发者优势在于调试效率)。
- HTTP 状态码与排查逻辑 :
- 4xx(如 404):路径不存在,需核对 URL、Context Path、Servlet Path 是否一致;
- 5xx(如 500):服务器错误,需查看页面提示与 Tomcat 日志;
- 连接失败:服务未启动,需检查服务日志。
- 调试关键:日志是调试核心工具,需耐心阅读系统日志以定位问题。
2.Spring Boot 总结
- 核心定位:为快速开发 Spring 而生,核心设计思想是 "约定大于配置"。
- 核心特性 :
- 启动时自动添加依赖,快速集成框架;
- 内置 Web 服务器(如 Tomcat),无需额外配置即可运行;
- 摒弃 XML 配置,采用注解 / 配置文件开发;
- 支持监控指标,便于了解项目运行状态。
- 项目启动 :通过 IDEA / 网页创建项目,类上标注
@SpringBootApplication即可启动。