Spring Boot入门教程:60分钟快速上手
大家好,我是一名从中文系转行做后端开发的“文科码农”。当初我连“后端”是什么都不知道,第一次听说“Spring Boot”时还以为是个修车工具。但今天,我已经在一线互联网公司带团队做微服务架构了。正因为自己是从零开始,所以我特别理解初学者面对一堆术语和配置文件时那种“两眼一抹黑”的感觉。
所以,我写了这篇 《Spring Boot入门教程:60分钟快速上手》,目标只有一个:让你在1小时内,亲手跑起一个能用的Java Web应用。不讲空洞理论,只写你能马上敲代码、看结果的实操内容。
💡 提示:本文假设你完全没接触过Java或后端开发,但会一点编程(比如Python、JavaScript等)。如果你连变量、函数都没听过,建议先补点基础。
一、Spring Boot 是什么?能用来做什么?
简单说:
- Spring Boot 是一个用 Java 写 Web 应用(网站、API 接口)的“脚手架工具”。
- 它帮你自动配置好一大堆繁琐的东西(比如数据库连接、日志、服务器),让你专注写业务逻辑。
- 你可以用它快速做出一个能返回“Hello World”的接口,也能做出淘宝、京东那样的大型系统。
🌰 举个例子:
如果你要盖房子,传统方式是自己烧砖、挖地基、接水电……而 Spring Boot 相当于给你一个精装样板间,你只需要决定客厅放沙发还是茶几。
二、环境准备:5分钟搭好开发环境
别怕!我们只装 3个工具,而且都有图形界面。
1. 安装 JDK(Java 开发工具包)
Spring Boot 是用 Java 写的,所以必须先装 JDK。
- 访问 https://adoptium.net/
- 下载 LTS 版本(比如 JDK 17 或 21)
- 安装时一路“下一步”即可
✅ 验证是否安装成功:
java -version
如果看到类似 openjdk version "17.0.10" 的输出,就成功了!
⚠️ 我当初学的时候卡在这一步:装了 JRE(运行环境)而不是 JDK(开发环境),结果没法编译代码。记住:必须装 JDK!
2. 安装 IDE:IntelliJ IDEA(社区版免费)
IDE 就是写代码的“编辑器”,比记事本智能得多。
- 下载地址:https://www.jetbrains.com/idea/download/
- 选 Community(社区版),免费且够用
- 安装时勾选
.java文件关联
3. (可选)安装 Postman —— 测试 API 的工具
我们写完接口后,需要用工具调用它。Postman 是最简单的选择。
- 下载:https://www.postman.com/downloads/
- 安装后打开即可使用
🔍 小知识:有人说用
curl命令也行,但对新手不友好。Postman 有图形界面,点几下就能发请求。
三、核心概念:3个关键词搞懂 Spring Boot
不用背定义,用生活例子理解:
| 概念 | 通俗解释 | 对应代码 |
|---|---|---|
| Controller | “前台接待员”——用户请求来了,它负责接收并安排谁处理 | @RestController |
| Application | “总开关”——整个程序的入口,启动时从这里开始 | main() 方法 |
| Dependency | “工具包”——别人写好的功能模块,直接拿来用 | pom.xml 中的依赖 |
🧠 我当初学的时候死记硬背“Bean”、“IOC”这些词,结果越学越懵。其实初期你只需要知道:写个类,加个注解,Spring Boot 自动帮你管理它。
四、实战项目:手把手写一个“用户问候”API
目标:访问 http://localhost:8080/hello?name=小明,返回 "你好,小明!"
第1步:创建项目(用 Spring Initializr)
- 打开 IntelliJ IDEA
- 选择 New Project → Spring Initializr
- 填写信息:
- Project SDK:选你刚装的 JDK(如 17)
- Language:Java
- Type:Maven
- 点击 Next
- 在 Dependencies 搜索框中输入 Spring Web,勾选它
- 点击 Finish
✅ 项目结构说明:
demo/ ├── src/ │ └── main/ │ ├── java/com/example/demo/ ← 你的代码放这里 │ └── resources/ ← 配置文件 └── pom.xml ← 依赖管理文件
第2步:写一个 Controller
在 src/main/java/com/example/demo 目录下新建文件 HelloController.java:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello(@RequestParam String name) {
return "你好," + name + "!";
}
}
🔍 代码解释:
@RestController:告诉 Spring 这是一个控制器@GetMapping("/hello"):当用户访问/hello路径时,执行这个方法@RequestParam String name:从 URL 参数中取出name的值
第3步:启动应用
- 找到
DemoApplication.java(自动生成的主类) - 右键 → Run 'DemoApplication.main()'
- 看到控制台输出
Tomcat started on port(s): 8080表示启动成功!
第4步:测试接口
打开 Postman(或浏览器):
- 地址栏输入:
http://localhost:8080/hello?name=张三 - 回车后,你会看到返回:
你好,张三!
🎉 恭喜!你已经做出了人生第一个 Spring Boot 接口!
五、进阶:返回 JSON 数据(更真实的场景)
实际开发中,我们通常返回结构化数据(JSON),而不是纯文本。
修改 HelloController.java:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class HelloController {
@GetMapping("/hello")
public Map<String, Object> sayHello(@RequestParam String name) {
Map<String, Object> response = new HashMap<>();
response.put("message", "你好," + name + "!");
response.put("timestamp", System.currentTimeMillis());
return response;
}
}
现在访问 http://localhost:8080/hello?name=李四,会返回:
{
"message": "你好,李四!",
"timestamp": 1712345678901
}
💡 为什么用 Map?因为 Spring Boot 会自动把 Java 对象转成 JSON。Map 是最简单的对象。
六、常见问题 & 新手避坑指南
❓ 问题1:启动报错 “Address already in use”
原因:8080 端口被其他程序占用了(比如另一个 Spring Boot 应用)。
解决:
在 src/main/resources/application.properties 中添加:
server.port=8081
下次启动就会用 8081 端口。
❓ 问题2:浏览器显示 404
检查点:
- Controller 类是否加了
@RestController? - 方法是否加了
@GetMapping(或@RequestMapping)? - URL 路径是否拼写正确?(区分大小写!)
❓ 问题3:中文乱码
解决:在 application.properties 中添加:
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
❓ 问题4:改了代码,怎么生效?
Spring Boot 默认不热加载。你需要:
- 在
pom.xml的<dependencies>中加入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
- 重启一次应用
- 之后修改代码,IDEA 会自动重启(可能需要按 Ctrl+F9 触发构建)
⏱️ 我当初每次改一行代码都要手动重启,浪费了无数时间。这个插件救了我!
七、面试题挑战:3道真题自测
学完基础后,试试能不能答对这些初级面试题:
题目1:Spring Boot 和 Spring 有什么区别?
答案:Spring 是一个庞大的框架集合,配置复杂;Spring Boot 是 Spring 的“简化版”,通过自动配置(Auto-configuration)和起步依赖(Starter)让开发更快速。
题目2:@RestController 和 @Controller 有什么不同?
答案:
@Controller返回的是视图(比如 HTML 页面),常用于传统 Web 应用@RestController = @Controller + @ResponseBody,直接返回数据(如 JSON),用于 API 开发
题目3:如何修改 Spring Boot 的默认端口?
答案:在
application.properties中设置server.port=新端口号,或通过命令行参数--server.port=8081启动。
八、学习建议:下一步该学什么?
你已经跨过了最难的第一步!接下来建议按这个顺序深入:
- 学基础语法:如果你还不熟悉 Java,推荐《Java核心技术 卷I》前6章
- 理解 HTTP:GET/POST、状态码、Header 等(推荐 MDN Web Docs)
- 学数据库:用 Spring Data JPA 连接 H2(内存数据库),实现增删改查
- 做个小项目:比如“待办事项清单”(Todo List API)
- 对比其他语言:你提到关键词 Go —— 可以试试用 Go 写同样的 Hello 接口,感受不同语言的生态差异
📚 推荐资源:
- 官方文档(英文):https://spring.io/projects/spring-boot
- 中文教程:B站搜索“Spring Boot 入门 雷丰阳”
- 实战书:《Spring Boot实战》(Craig Walls 著)
最后的话
我当初自学时,最大的误区就是“想一口吃成胖子”。其实 Spring Boot 的入门门槛远比你想象的低——你不需要懂反射、代理、AOP 才能写第一个接口。
就像学开车,你不需要先成为机械工程师。先上路,再慢慢理解引擎原理。
希望这篇 60分钟教程 能帮你迈出第一步。记住:每个大神,都曾是个连“端口”是什么都不知道的小白。
动手敲代码吧!你离“后端开发”只差一个 @RestController 的距离。
✨ 行动建议:现在就打开 IDEA,跟着教程敲一遍。遇到问题?评论区见!

评论 0