Spring Boot入门教程:60分钟快速上手

掘金种树人
2025-12-17 08:02
阅读 1282

大家好,我是一名从中文系转行做后端开发的“文科码农”。当初我连“后端”是什么都不知道,第一次听说“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 就是写代码的“编辑器”,比记事本智能得多。

3. (可选)安装 Postman —— 测试 API 的工具

我们写完接口后,需要用工具调用它。Postman 是最简单的选择。

🔍 小知识:有人说用 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)

  1. 打开 IntelliJ IDEA
  2. 选择 New ProjectSpring Initializr
  3. 填写信息:
    • Project SDK:选你刚装的 JDK(如 17)
    • Language:Java
    • Type:Maven
  4. 点击 Next
  5. 在 Dependencies 搜索框中输入 Spring Web,勾选它
  6. 点击 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步:启动应用

  1. 找到 DemoApplication.java(自动生成的主类)
  2. 右键 → Run 'DemoApplication.main()'
  3. 看到控制台输出 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 默认不热加载。你需要:

  1. pom.xml<dependencies> 中加入:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>
  1. 重启一次应用
  2. 之后修改代码,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 启动。


八、学习建议:下一步该学什么?

你已经跨过了最难的第一步!接下来建议按这个顺序深入:

  1. 学基础语法:如果你还不熟悉 Java,推荐《Java核心技术 卷I》前6章
  2. 理解 HTTP:GET/POST、状态码、Header 等(推荐 MDN Web Docs)
  3. 学数据库:用 Spring Data JPA 连接 H2(内存数据库),实现增删改查
  4. 做个小项目:比如“待办事项清单”(Todo List API)
  5. 对比其他语言:你提到关键词 Go —— 可以试试用 Go 写同样的 Hello 接口,感受不同语言的生态差异

📚 推荐资源:


最后的话

我当初自学时,最大的误区就是“想一口吃成胖子”。其实 Spring Boot 的入门门槛远比你想象的低——你不需要懂反射、代理、AOP 才能写第一个接口

就像学开车,你不需要先成为机械工程师。先上路,再慢慢理解引擎原理。

希望这篇 60分钟教程 能帮你迈出第一步。记住:每个大神,都曾是个连“端口”是什么都不知道的小白

动手敲代码吧!你离“后端开发”只差一个 @RestController 的距离。

行动建议:现在就打开 IDEA,跟着教程敲一遍。遇到问题?评论区见!

评论 0

最热最新
暂无评论
掘金种树人Lv.1
0
影响力
0
文章
0
粉丝