Spring Boot入门教程:60分钟快速上手
大家好,我是一名工作5年的后端开发工程师。经常有朋友问我:“想学 Java 后端,Spring Boot 该怎么入门?”说实话,我当初学的时候也踩过不少坑——文档太官方、概念太抽象、环境配到崩溃……所以今天,我想用最接地气的方式,带你 60分钟内跑通第一个 Spring Boot 项目,顺便聊聊那些面试题、避坑经验和学习路径。
📌 本文适合谁?
- 完全零基础,连 Java 都不太熟的新手
- 想快速体验 Spring Boot 的前端开发者(比如熟悉 JavaScript 的同学)
- 准备面试,需要快速上手的求职者
一、Spring Boot 是什么?能干啥?
简单说:Spring Boot 是一个帮你快速搭建 Java 后端服务的“脚手架”。
- 不用写一堆 XML 配置
- 内嵌了 Tomcat(Web 服务器),直接
java -jar就能启动 - 自动整合数据库、缓存、安全等常用功能
💡 类比理解:
如果你用过 JavaScript 的 Express 或 Node.js,Spring Boot 就像是 Java 版的 “Express + 内置服务器 + 自动配置全家桶”。
二、环境准备(10分钟搞定)
1. 安装 JDK(Java 开发工具包)
Spring Boot 2.7+ 推荐使用 JDK 17(目前最稳定的长期支持版本)。
验证安装:
java -version
# 应该输出类似:openjdk version "17.0.xx"
⚠️ 踩坑提醒:
很多新手卡在JAVA_HOME环境变量没配!
Windows 用户:去“系统属性 → 高级 → 环境变量”,新建JAVA_HOME指向 JDK 安装目录(如C:\Program Files\Java\jdk-17)。
2. 安装 IDE(推荐 IntelliJ IDEA Community)
- 免费版就够用:https://www.jetbrains.com/idea/download
- 别用 Eclipse!对新手不友好(我当初就是被劝退过 😅)
3. 创建项目(两种方式)
方式一:用 Spring Initializr(推荐)
访问 https://start.spring.io,填写:
| 配置项 | 值 |
|---|---|
| Project | Maven |
| Language | Java |
| Spring Boot | 3.2.x(最新稳定版) |
| Group | com.example |
| Artifact | demo |
| Dependencies | Spring Web(必选) |
点击 “Generate”,下载 zip 包,解压后用 IDEA 打开。
方式二:IDEA 直接创建
File → New → Project → Spring Initializr,后续步骤同上。
✅ 关键点:Dependencies 里只勾 Spring Web 即可!别贪多,新手加太多依赖反而容易报错。
三、核心概念(用大白话解释)
1. Controller:你的“接口接待员”
所有 HTTP 请求(比如浏览器访问 /hello)都由 Controller 处理。
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}
@RestController= 这个类专门处理 Web 请求@GetMapping("/hello")= 当用户访问/hello时,执行这个方法
💬 我当初学的时候:总把
@GetMapping写成@Get,结果 404 找半天……记住全名!
2. Application 入口:程序从哪开始?
自动生成的 DemoApplication.java 就是入口:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication= 开启自动配置 + 组件扫描- 运行这个
main方法,服务就启动了!
3. application.properties:配置文件
位置:src/main/resources/application.properties
常用配置:
# 改端口(默认8080)
server.port=9090
# 设置上下文路径(可选)
server.servlet.context-path=/api
🔧 效果:现在访问
http://localhost:9090/api/hello
四、实战:写一个“图书查询”接口(20分钟)
目标:实现一个 GET 接口 /books,返回 JSON 格式的书单。
步骤 1:创建 Book 类(数据模型)
public class Book {
private String title;
private String author;
// 构造函数(IDEA 可右键 Generate → Constructor)
public Book(String title, String author) {
this.title = title;
this.author = author;
}
// Getter(必须!否则 JSON 序列化失败)
public String getTitle() { return title; }
public String getAuthor() { return author; }
}
❗ 新手大坑:
忘记写 getter 方法!Spring Boot 用 Jackson 转 JSON,没 getter 就返回{}。
步骤 2:改造 Controller
@RestController
public class BookController {
@GetMapping("/books")
public List<Book> getAllBooks() {
return Arrays.asList(
new Book("《Spring实战》", "Craig Walls"),
new Book("《Effective Java》", "Joshua Bloch")
);
}
}
步骤 3:运行 & 测试
- 右键
DemoApplication.java→ Run - 控制台看到
Tomcat started on port(s): 8080表示成功 - 浏览器访问
http://localhost:8080/books
✅ 你应该看到:
[
{"title":"《Spring实战》","author":"Craig Walls"},
{"title":"《Effective Java》","author":"Joshua Bloch"}
]
🎉 恭喜!你已经写出第一个 REST API 了!
五、新手常见问题 & 解决方案
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
启动报错 NoClassDefFoundError |
JDK 版本不匹配 | 确认 IDEA 的 Project SDK 是 JDK 17 |
| 访问接口返回 404 | Controller 没被扫描到 | 确保 Controller 在 DemoApplication 同包或子包下 |
返回 JSON 是空对象 {} |
缺少 getter 方法 | 给 Book 类加上 getter |
| 端口被占用 | 其他程序占用了 8080 | 改 application.properties 中的 server.port |
| 中文乱码 | 默认编码非 UTF-8 | 在 application.properties 加 server.servlet.encoding.charset=UTF-8 |
💡 经验之谈:
我第一次部署项目到服务器,就是因为没改端口,和 Nginx 冲突了,排查了整整一天……
六、为什么前端开发者也该懂点 Spring Boot?
如果你会 JavaScript,你会发现:
| JavaScript (Express) | Java (Spring Boot) |
|---|---|
app.get('/hello', ...) |
@GetMapping("/hello") |
res.json(data) |
直接 return 对象(自动转 JSON) |
npm start |
运行 main 方法 |
📚 延伸建议:
前端同学可以尝试用 Spring Boot 写个 Mock API,替代 Mock.js,更贴近真实后端逻辑。
七、下一步学习建议
1. 必读书籍(按顺序)
| 书名 | 适合阶段 | 说明 |
|---|---|---|
| 《Spring Boot实战》 | 入门 | 代码多,概念少,照着敲就行 |
| 《Spring揭秘》 | 进阶 | 深入原理,面试加分 |
| 《Effective Java》 | 长期 | Java 编程圣经,提升代码质量 |
📖 我的建议:先别啃《Spring源码深度解析》,容易劝退!
2. 高频面试题准备
- Spring Boot 自动配置原理?
@RestController和@Controller有什么区别?- 如何统一处理异常?
- 如何连接 MySQL?
✅ 技巧:每学一个新功能(比如连数据库),立刻搜“Spring Boot 面试题”,带着问题学效率更高。
3. 动手项目推荐(循序渐进)
- Todo List API(增删改查)
- 用户登录接口(集成 Spring Security)
- 博客系统(连 MySQL + MyBatis)
🔁 学习心法:
看十遍不如写一遍。哪怕只是改个端口、加个字段,也要亲手敲代码!
结语
60分钟,你已经走完了我当年一周的路。技术没有捷径,但可以少走弯路。希望这篇“踩坑指南”能帮你避开我曾经掉进去的坑。
记住:
所有的“高深莫测”,拆开看都是“Hello World”的组合。
下次当你看到复杂的微服务架构时,别慌——它可能也只是从一个 @GetMapping("/hello") 开始的。
祝你 coding 顺利,面试一把过!🚀
作者:一名不想让你重复踩坑的后端工程师
字数统计:约 3040 字(含代码与表格)

评论 0