《SpringBoot 入门通关指南:从 HelloWorld 到问题排查全掌握》

一、SpringBoot介绍

  1. Spring 框架的定位
    • 是全球最流行的 Java 框架,特点是让 Java 开发更快速、简单、安全,覆盖 Web 开发、大数据等领域,形成了自身技术生态圈。
  2. Spring Boot 的诞生背景
    • Spring Framework 存在配置繁琐、入门难度高的问题,因此 Spring 官方推出 Spring Boot,以简化 Spring 项目的开发流程。
  3. 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 配置文件

三、运⾏项⽬

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

  1. 类上的 @RequestMapping 是 "公共路径" :相当于给这个控制器下的所有方法 "统一开头",避免每个方法都写重复的路径(比如所有用户相关接口都以/user开头);
  2. 方法上的 @RequestMapping 是 "专属路径":区分同一个控制器下的不同方法,是访问具体功能的 "最后一段路径";
  3. 必须 "前缀 + 后缀" 完整匹配 :只访问前缀(/user)会报错,因为没有方法对应这个路径;只有加上方法的后缀,才能精准找到要执行的方法。
3. 对应 "建立连接 - 请求 - 响应" 的流程
  • 建立连接 :Spring 启动后,会自动扫描@RestController ,把@RequestMapping的路径和方法 "注册" 到请求映射表中;
  • 请求前端/user/m1的请求,Spring 根据路径找到对应的m1()方法;
  • 响应m1()返回"m1",Spring 把这个字符串作为 HTTP 响应的内容返回给前端。

五、Web服务器

1.Web 服务器
  1. 核心作用
    • 封装 HTTP 协议,简化开发(无需手动解析 HTTP 规则)
    • 也称为 WWW 服务器 / HTTP 服务器,提供信息浏览服务
  2. 常见类型
    • Apache、Nginx、IIS、Tomcat、JBoss 等
  3. SpringBoot 与 Tomcat
    • SpringBoot 内置 Tomcat 服务器,无需额外配置即可运行
    • Tomcat 默认端口为 8080,程序访问端口与之对应
2.请求响应流程
  1. 流程概述:浏览器输入 URL → 建立连接 → 发送请求 → 服务器处理 → 返回响应
  2. URL 解析(以http://127.0.0.1:8080/user/u1为例)
    • 127.0.0.1:本地 IP 地址,定位到本机
    • 8080:端口号,找到本机运行的对应程序进程
    • /user/u1:请求的资源路径,对应服务器中存储的数据
  3. 服务器处理步骤
    • 接收请求信息(如/user/u1
    • 查找对应资源
    • 将资源返回给浏览器

补充说明

  • 127.0.0.1 是本地回环地址,仅用于本机内部通信,无法被外部网络访问
  • Web 资源指可通过网络访问的服务器数据

五、访问出错怎么办

一、404 错误的定义

表示用户访问的资源不存在,通常原因是 URL 路径书写错误。

2.常见错误实例
  1. URL 路径拼写错误
    • 例如:将正确路径(如/sayhi)误写为/sayHi1,导致服务器无法匹配对应资源。
  2. 代码注解(路由)错误
    • 例如:Controller 中@RequestMapping("/sayhi")的路径,与实际访问的 URL(如/sayHi)大小写 / 拼写不一致,造成路由映射失败。
3.错误表现

访问后会显示 "Whitelabel Error Page",并标注type=Not Found, status=404

补充说明

可通过 Fiddler 等工具抓包分析 HTTP 请求,进一步定位路径匹配问题。

二、500 错误的定义

表示服务器内部错误,通常是服务器代码执行过程中出现异常(如逻辑错误、运行时异常)导致的。

1.错误实例与表现
  1. 错误场景 :代码中存在运行时异常(如示例中int res = 10/0;的 "除数为 0" 算术异常)。
  2. 页面表现 :访问后显示 "Whitelabel Error Page",标注type=Internal Server Error, status=500
  3. 后端提示 :程序控制台会输出异常调用栈 ,明确异常类型(如ArithmeticException: / by zero)、出错文件(如UserController.java)及行号(如第 11 行)。
2.排查与解决

通过后端控制台的异常信息,定位到具体代码行,修复对应的逻辑错误(如避免除数为 0)即可。

三、无法访问此网站的定义
1.问题定义与原因

该问题表现为浏览器提示 "无法访问此网站"(如127.0.0.1拒绝了连接请求),核心原因是Tomcat 服务器未成功启动,常见触发场景包括:

  1. Tomcat 本身启动失败;
  2. 访问的 IP / 端口号填写错误。
2.辅助排查工具

通过 Fiddler 抓包可看到明确错误提示(如ConnectionRefused (0x274D)),进一步确认是目标计算机拒绝连接。

3.解决思路
  1. 检查 Tomcat 启动状态,重启服务器;
  2. 核对访问 URL 中的 IP 和端口号是否与 Tomcat 配置一致。

六、总结

1.问题排查小结

  1. 学习重点 :学习 Spring 时,除了代码写法,更需掌握错误排查思路(经验丰富的开发者优势在于调试效率)。
  2. HTTP 状态码与排查逻辑
    • 4xx(如 404):路径不存在,需核对 URL、Context Path、Servlet Path 是否一致;
    • 5xx(如 500):服务器错误,需查看页面提示与 Tomcat 日志;
    • 连接失败:服务未启动,需检查服务日志。
  3. 调试关键:日志是调试核心工具,需耐心阅读系统日志以定位问题。

2.Spring Boot 总结

  1. 核心定位:为快速开发 Spring 而生,核心设计思想是 "约定大于配置"。
  2. 核心特性
    • 启动时自动添加依赖,快速集成框架;
    • 内置 Web 服务器(如 Tomcat),无需额外配置即可运行;
    • 摒弃 XML 配置,采用注解 / 配置文件开发;
    • 支持监控指标,便于了解项目运行状态。
  3. 项目启动 :通过 IDEA / 网页创建项目,类上标注@SpringBootApplication即可启动。
相关推荐
DJ斯特拉34 分钟前
日志技术Logback
java·前端·logback
古城小栈34 分钟前
SpringBoot Web容器选型指南:Tomcat与Undertow技术对比及迁移实践
spring boot·后端·tomcat
悟能不能悟35 分钟前
springboot的controller中如何拿到applicatim.yml的配置值
java·spring boot·后端
SamDeepThinking36 分钟前
88MB Excel文件导致系统崩溃?看我如何将内存占用降低
java·excel
考虑考虑37 分钟前
SpringBoot4中api版本控制
spring boot·后端·spring
我要添砖java38 分钟前
<JAVAEE>多线程6-面试八股文之juc中的组件
java·面试·java-ee
+VX:Fegn089539 分钟前
计算机毕业设计|基于springboot + vue二手交易管理系统(源码+数据库+文档)
数据库·vue.js·spring boot
Jul1en_41 分钟前
【Spring DI】Spring依赖注入详解
java·spring boot·后端·spring
Unstoppable2243 分钟前
八股训练营第 35 天 | volatile 关键字的作用有那些?volatile 与synchronized 的对比?JDK8 有哪些新特性?
java·八股·volatile