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

架构_胡玉_引领者
2025-12-16 14:14
阅读 201

作者注:大家好,我是一名从培训班出来的前端开发,但因为工作需要,也自学了后端技术。我深知新手在面对像 Spring Boot 这样“看起来高大上”的框架时的迷茫和恐惧。当初我第一次看到 @SpringBootApplication 时,脑袋里全是问号。所以,这篇教程是我站在“过来人”的角度,用最直白的语言、最简单的例子,带你 60 分钟内跑通第一个 Spring Boot 应用。即使你完全零基础,只要会点电脑操作,就能跟上!


为什么是 Spring Boot?它能做什么?

简单说,Spring Boot 是一个用来快速开发 Java 后端服务的框架
你可以把它理解为“搭积木的底座”——它帮你把底层复杂的配置(比如数据库连接、Web 服务器)都自动搞定,你只需要专注于写业务逻辑。

举个生活化的例子:

  • 如果你要开一家奶茶店(做一个网站),你需要自己装修店面、买设备、接水电……这很累。
  • 而 Spring Boot 就像是一个“拎包开店”的创业园区:水电网络全通,收银台、冰柜、操作台都配好了,你只管做奶茶就行。

典型应用场景

  • 开发 API 接口(比如给手机 App 提供数据)
  • 构建后台管理系统
  • 做微服务架构的基础单元

📌 注意:虽然本文主角是 Spring Boot(Java 技术栈),但我会在合适的地方提一下 Python 作为对比,帮助有 Python 背景的同学理解。毕竟,在“代码人生”这条路上,多了解一门语言,就多一条路。


第一步:环境准备(10 分钟)

要运行 Spring Boot,你需要以下工具。别担心,我都给你列清楚了。

1. 安装 JDK(Java 开发工具包)

Spring Boot 基于 Java,所以必须先装 JDK。

  • 推荐版本:JDK 17(目前 Spring Boot 3.x 的主流支持版本)
  • 下载地址https://adoptium.net/(免费、安全、开源)

安装后,打开终端(Windows 用 CMD 或 PowerShell,Mac/Linux 用 Terminal),输入:

java -version

如果看到类似下面的输出,说明安装成功:

openjdk version "17.0.12" 2024-07-16
OpenJDK Runtime Environment Temurin-17.0.12+7 (build 17.0.12+7)
OpenJDK 64-Bit Server VM Temurin-17.0.12+7 (build 17.0.12+7, mixed mode)

💡 避坑提示:不要用 JDK 8!虽然老项目还在用,但新学建议直接上 JDK 17,避免后续兼容问题。

2. 安装 IDE(集成开发环境)

推荐使用 IntelliJ IDEA Community(社区版),免费且对 Spring Boot 支持极好。

3. (可选)安装 Maven

其实 IDEA 会自动帮你管理 Maven,但如果你喜欢命令行操作,可以单独安装。不过新手完全可以跳过这步,IDEA 内置了 Maven。


第二步:创建你的第一个 Spring Boot 项目(5 分钟)

在 IDEA 中创建项目

  1. 打开 IDEA → New Project
  2. 左侧选择 Spring Initializr
  3. 配置如下:
配置项 建议值
Project SDK 选择你刚装的 JDK 17
Language Java
Type Maven
Group com.example(包名,随便写,但要有意义)
Artifact demo(项目名)
Name demo
Package name com.example.demo
Packaging Jar
Java Version 17
  1. 点击 Next

  2. 在依赖(Dependencies)页面,勾选:

    • Spring Web(这是做 Web 服务的核心依赖)
  3. 点击 NextFinish

✅ 几秒钟后,IDEA 会自动生成一个完整的 Spring Boot 项目结构!


第三步:理解核心概念(通俗版)

在写代码前,先搞懂几个关键词,避免“照着敲但不懂”。

1. @SpringBootApplication 是什么?

这是 Spring Boot 的“总开关”。你主类上的这个注解,相当于告诉 Spring:“嘿,从这里开始启动整个应用!”

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

🔒 安全意识提醒:永远不要把这个类放在默认包(default package)下!一定要放在有包名的目录里(如 com.example.demo),否则 Spring 可能无法正确扫描组件,导致安全隐患或功能失效。

2. Controller 是什么?

Controller 是处理用户请求的“接待员”。比如用户访问 /hello,Controller 就负责返回“Hello World!”。

3. REST API 是什么?

简单说,就是一种约定好的“对话方式”。前端(比如网页或 App)通过 HTTP 请求(GET/POST 等)向后端要数据,后端返回 JSON 格式的内容。

🐍 Python 对比:如果你用过 Flask,Spring Boot 的 @RestController 就像 Flask 的 @app.route;如果你用过 FastAPI,那更接近——都是定义路由返回 JSON。


第四步:实战!写一个“打招呼”接口(15 分钟)

现在,我们来写一个最简单的 API:当用户访问 /api/hello 时,返回 "Hello from Spring Boot!"

步骤 1:创建 Controller 类

src/main/java/com/example/demo 目录下,右键 → New → Java Class,命名为 HelloController

输入以下代码:

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/api/hello")
    public String sayHello() {
        return "Hello from Spring Boot!";
    }
}

代码解释:

  • @RestController:表示这是一个返回 JSON 或文本的控制器(不是返回网页)
  • @GetMapping("/api/hello"):当用户用 GET 方法访问 /api/hello 时,调用 sayHello() 方法
  • 方法直接返回字符串,Spring Boot 会自动把它变成 HTTP 响应体

步骤 2:启动应用

点击 DemoApplication 类左边的绿色三角 ▶️,或者右键 → Run。

你会看到控制台输出很多日志,最后一行通常是:

Tomcat started on port(s): 8080 (http) with context path ''

✅ 表示服务已启动,监听在 http://localhost:8080

步骤 3:测试接口

打开浏览器,访问:
http://localhost:8080/api/hello

你应该看到页面上显示:

Hello from Spring Boot!

🎉 恭喜!你已经成功运行了第一个 Spring Boot 应用!


第五步:进阶一点——返回 JSON 数据(10 分钟)

真实项目中,我们通常返回 JSON,而不是纯文本。

创建一个数据类(POJO)

新建一个类 Greeting.java

package com.example.demo;

public class Greeting {
    private String message;
    private String language;

    // 必须有无参构造函数(Lombok 可以省略,但新手建议手写)
    public Greeting() {}

    public Greeting(String message, String language) {
        this.message = message;
        this.language = language;
    }

    // Getter 和 Setter(Spring 需要用它们序列化 JSON)
    public String getMessage() { return message; }
    public void setMessage(String message) { this.message = message; }
    public String getLanguage() { return language; }
    public void setLanguage(String language) { this.language = language; }
}

🔒 安全意识提醒:不要把敏感字段(如密码、身份证号)直接暴露在返回对象中!生产环境中要用 DTO(数据传输对象)做字段过滤。

修改 Controller

@GetMapping("/api/greeting")
public Greeting getGreeting() {
    return new Greeting("你好,世界!", "zh-CN");
}

重启应用,访问 http://localhost:8080/api/greeting,你会看到:

{
  "message": "你好,世界!",
  "language": "zh-CN"
}

这就是标准的 JSON 响应!前端可以用 JavaScript 轻松解析。

🐍 Python 对比:这就像在 Flask 中返回 jsonify(message="你好", language="zh-CN"),Spring Boot 自动帮你做了序列化。


第六步:常见问题解答(FAQ)

Q1:为什么启动时报错 “Address already in use”?

原因:8080 端口被其他程序占用了(比如另一个 Spring Boot 应用、Tomcat、甚至微信小程序开发者工具)。

解决方法

  • 关闭占用端口的程序
  • 或者修改端口:在 src/main/resources/application.properties 文件中添加:
server.port=8081

然后访问 http://localhost:8081/...


Q2:为什么浏览器显示 404?

可能原因:

  • 路径写错了(比如 /api/hello 写成 /hello
  • Controller 类没加 @RestController
  • 项目没启动成功(看控制台有没有红色错误)

排查步骤

  1. 确认应用已成功启动(看到 Tomcat started 日志)
  2. 检查 URL 是否完全匹配 @GetMapping 中的路径
  3. 确保 Controller 类在 @SpringBootApplication 所在包或其子包下(否则不会被扫描到)

💡 经验之谈:我当初就因为把 Controller 放在和主类同级但不同包,折腾了半小时!


Q3:能不能用 Python 做同样的事?为什么还要学 Spring Boot?

当然可以!用 Flask 写个 hello world 只需 5 行代码:

from flask import Flask
app = Flask(__name__)

@app.route('/api/hello')
def hello():
    return "Hello from Python!"

if __name__ == '__main__':
    app.run()

但为什么还要学 Spring Boot?

维度 Python (Flask/FastAPI) Spring Boot
性能 中等(适合 I/O 密集型) 高(适合 CPU/高并发)
生态 机器学习、脚本强 企业级应用、金融、电商强
类型安全 动态类型,运行时才报错 静态类型,编译时检查
团队协作 小团队快 大团队规范、可维护性强

🌟 代码人生建议:不要只绑死一门语言。前端同学会点 Python 写爬虫/自动化很棒,也会点 Java 做后端更能理解全栈协作。技术是工具,解决问题才是目的。


第七步:学习建议与下一步路线图

你已经完成了 Spring Boot 的“Hello World”,但这只是起点。接下来该怎么走?

短期目标(1-2 周)

  1. 学会读官方文档https://spring.io/projects/spring-boot
  2. 动手做个小项目:比如“待办事项 API”(增删改查)
  3. 理解自动配置原理:为什么加个依赖就能用数据库?
  4. 学习常用注解@Autowired, @Service, @Repository

中期目标(1-2 个月)

  • 连接数据库(H2 / MySQL + MyBatis / JPA)
  • 学习 RESTful 设计规范
  • 了解异常处理、日志记录
  • 尝试部署到云服务器(如阿里云轻量应用服务器)

长期建议

  • 不要死记硬背:Spring Boot 的魅力在于“约定优于配置”,理解思想比记代码重要。
  • 多调试:在 IDEA 里打断点,看看请求是怎么流转的。
  • 参与开源:GitHub 上有很多 Spring Boot 入门项目,fork 下来看源码。

💬 最后鼓励一句:我当初从培训班出来,连 Java 语法都不熟,但靠着每天写一个小功能,三个月后也能独立开发后端模块。代码人生,贵在坚持,不在起点


附录:常用命令速查表

操作 命令 / 位置
启动 Spring Boot 点击主类的 ▶️ 或运行 ./mvnw spring-boot:run
修改端口 application.properties 中加 server.port=8081
添加依赖 pom.xml<dependencies> 中加入(IDEA 也支持图形化添加)
查看所有接口 启动后访问 /actuator/mappings(需添加 spring-boot-starter-actuator 依赖)
打包成 Jar 运行 ./mvnw clean package,生成在 target/ 目录

祝你在 Spring Boot 的世界里,少踩坑,多收获!
有任何问题,欢迎在评论区留言——因为我也曾是那个对着 404 发呆的新手 😊

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝