Spring Boot入门教程:60分钟快速上手
作者:211高校计算机专业研二学生,热爱后端开发与技术分享。本文基于我的实战经验整理而成,希望帮助零基础同学少走弯路。
大家好!我是小林,目前正在读研,主攻后端系统方向。写这篇教程的初衷,是因为我当初学 Spring Boot 的时候踩过不少坑——文档太抽象、概念堆砌、环境配置出错……花了整整一周才跑通第一个 “Hello World”。所以今天,我想用最直白的语言、最清晰的步骤,带你 60 分钟内真正上手 Spring Boot。
即使你完全没接触过 Java,只要你有基本编程思维(比如会 Python),也能跟上!
一、Spring Boot 是什么?能做什么?
简单说:Spring Boot 是一个能快速搭建 Java 后端服务的“脚手架”。
- 它帮你自动配置数据库、Web 服务器、日志等复杂组件。
- 你只需专注业务逻辑,不用手动配几十个 XML 文件。
- 广泛用于企业级 Web 应用、API 接口、微服务等场景。
💡 类比理解:如果你会 Python,可以把 Spring Boot 看作 Flask 或 FastAPI 的“Java 版”——但更强大、更适合大型项目。
二、环境准备(5 分钟)
我们只需要三样东西:
| 工具 | 作用 | 安装建议 |
|---|---|---|
| JDK 17 | Java 运行环境 | 推荐 Oracle JDK 或 OpenJDK |
| IntelliJ IDEA | 开发 IDE | 社区版免费,官网下载即可 |
| Maven | 项目依赖管理工具 | IDEA 内置,无需单独安装 |
验证安装是否成功
打开终端,依次输入:
java -version # 应显示 17.x
javac -version # 应显示 17.x
⚠️ 注意:不要用 JDK 8!虽然老项目常用,但 Spring Boot 3.x 要求 JDK 17+。我当初就在这卡了半天……
三、核心概念速览(通俗版)
在动手前,先搞懂三个关键词:
1. Controller(控制器)
相当于你 API 的“入口”。用户请求进来,由它决定返回什么数据。
👉 就像 Python Flask 中的 @app.route。
2. 依赖注入(Dependency Injection)
Spring 自动帮你创建和管理对象,你不用 new 来实例化。
👉 类似于 Python 中把模块 import 后直接调用,但更智能。
3. Starter(启动器)
预打包的一组功能依赖。比如 spring-boot-starter-web 包含了 Web 开发所需的一切。
👉 相当于 pip install 一个完整功能包,而不是一个个装库。
四、实战:60 行代码构建一个 RESTful API
我们将做一个极简的“用户信息查询”接口。目标:访问 /user/1 返回 { "id": 1, "name": "Alice" }。
步骤 1:创建项目
- 打开 IDEA → New Project → 选择 Spring Initializr
- 填写:
- Project SDK: 选择你的 JDK 17
- Language: Java
- Spring Boot: 3.2.x(最新稳定版)
- 在 Dependencies 中勾选:
Spring Web
- 点击 Next → Finish
✅ 项目结构自动生成,无需手动建文件夹!
步骤 2:编写 Controller
在 src/main/java/com/example/demo 下新建文件 UserController.java:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController // 表示这个类是控制器,且所有返回值自动转为 JSON
public class UserController {
@GetMapping("/user/{id}") // 定义 GET 请求路径,{id} 是路径参数
public Map<String, Object> getUser(@PathVariable Integer id) {
Map<String, Object> user = new HashMap<>();
user.put("id", id);
user.put("name", "Alice");
return user; // Spring Boot 自动转为 JSON
}
}
步骤 3:启动项目
找到 DemoApplication.java(主类),右键 → Run 'DemoApplication.main()'
看到控制台输出:
Tomcat started on port(s): 8080 (http)
...
Started DemoApplication in 2.3 seconds
说明服务已启动!
步骤 4:测试接口
打开浏览器,访问:http://localhost:8080/user/1
你将看到:
{"id":1,"name":"Alice"}
🎉 恭喜!你的第一个 Spring Boot 接口跑通了!
五、对比 Python:快速理解差异
很多新手从 Python 转来,容易混淆。这里做个简单对比:
| 功能 | Python (Flask) | Spring Boot (Java) |
|---|---|---|
| 路由定义 | @app.route('/user/<int:id>') |
@GetMapping("/user/{id}") |
| 返回 JSON | return jsonify(data) |
直接 return 对象(自动序列化) |
| 启动服务 | app.run() |
运行带 @SpringBootApplication 的主类 |
| 依赖管理 | requirements.txt + pip |
pom.xml + Maven |
💡 关键区别:Java 是静态类型语言,需要声明类和方法;但换来的是更强的类型安全和 IDE 支持。
六、常见问题 & 避坑指南
Q1:为什么启动报错 “Port 8080 already in use”?
原因:已有程序占用了 8080 端口(比如另一个 Spring Boot 项目)。
解决:
- Windows:
netstat -ano | findstr :8080→ 找到 PID → 任务管理器结束进程 - Mac/Linux:
lsof -i :8080→kill -9 <PID>
Q2:修改代码后必须重启才能生效?
解决:添加 热部署 功能!
在 pom.xml 的 <dependencies> 中加入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
保存后,IDEA 会自动重启(实际是快速 reload),无需手动点 Run。
Q3:中文返回乱码?
原因:默认编码非 UTF-8。
解决:在 application.properties(位于 src/main/resources)中添加:
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
七、下一步学习建议
完成本教程后,你已经掌握了 Spring Boot 的“最小可用知识集”。接下来建议按顺序学习:
- 连接数据库
添加spring-boot-starter-data-jpa+ H2(内存数据库),实现 CRUD。 - 统一返回格式
用@ControllerAdvice统一处理异常和响应结构。 - 接口文档
集成 Swagger(SpringDoc OpenAPI),自动生成 API 文档。 - 部署上线
打成 JAR 包:./mvnw clean package→java -jar target/*.jar
📌 我的建议:不要一开始就学 Spring Cloud、Redis、消息队列!先把单体应用搞透,再进阶微服务。
结语
Spring Boot 的魅力在于“约定优于配置”——它用合理的默认值,让你避开繁琐的初始化工作。我当初花一周才明白的道理,现在希望你能 60 分钟掌握。
技术分享的意义,就是让后来者少踩坑。如果你觉得这篇教程有用,欢迎转发给同样在入门路上挣扎的朋友!
最后提醒:编程不是看懂就行,一定要亲手敲代码。哪怕只是改个数字、换个项目名,也比复制粘贴强十倍。
祝你编码愉快!🚀

评论 0