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

线程池保洁员
2025-12-13 03:33
阅读 4340

大家好,我是一个从中文系自学转码成功的后端工程师。当初我连“类”和“对象”都分不清,看到 public static void main 就头大。但靠着死磕文档、不断试错,最终不仅找到了一份不错的 Java 后端工作,还成了团队里的技术讲师。

今天写这篇《Spring Boot 入门教程》,就是想用最通俗的语言,带你 在 60 分钟内亲手跑起一个 Web 项目。你不需要任何编程基础,只要会打字、能装软件,就能跟着做!

为什么选 Spring Boot?
因为它像“Java 的脚手架”——帮你自动配置好一堆复杂的东西,让你专注写业务逻辑。就像你不用自己砌墙就能直接装修房子。


一、环境准备:装好“工具箱”

在开始前,我们需要安装三个东西:

工具 作用 安装建议
JDK 17 Java 运行环境(必须) 去 Oracle 或 Adoptium 下载 LTS 版本
IDEA Community 写代码的编辑器(推荐) 免费!比 Eclipse 更友好,新手首选
Maven 项目依赖管理工具 IDEA 内置,无需单独安装

检查是否安装成功

打开终端(Windows 用 CMD 或 PowerShell,Mac 用 Terminal),输入:

java -version

如果看到类似 openjdk version "17.0.9" 的输出,说明 JDK 装好了。

💡 我当初学的时候:卡在 JDK 环境变量上整整一天!后来发现:用 IDEA 自带的 JDK 选项最省事——新建项目时直接选“Download JDK”,它会自动配好。


二、核心概念:Spring Boot 到底是什么?

别被名字吓到!我们可以把它拆开理解:

  • Spring:一个 Java 框架,用来“管理对象”和“组织代码”
  • Boot:意思是“启动器”,它把 Spring 配置自动化了

三个关键概念(用生活比喻)

  1. Controller(控制器)
    → 相当于餐厅的“服务员”:你点菜(发请求),它去厨房(调用逻辑),再把菜端给你(返回结果)

  2. Application(主程序)
    → 就是那个带 main 方法的类,Spring Boot 项目的“启动按钮”

  3. 依赖(Dependencies)
    → 别人写好的功能包,比如“发邮件”、“连数据库”。你不用重造轮子,直接“拿来用”

🌟 开发心得:Spring Boot 最大的好处是 “约定优于配置”。比如你放一个 application.properties 文件,它就知道这是配置文件;你写个带 @RestController 的类,它就知道这是接口。


三、实战项目:做一个“问候服务”

我们要做一个超简单的 Web 接口:访问 /hello?name=张三,返回 "你好,张三!"

第 1 步:创建项目

  1. 打开 IDEA → New Project
  2. 选择 Spring Initializr
  3. 填写:
    • Project SDK: 选你装的 JDK 17
    • Language: Java
    • Type: Maven
  4. 在 Dependencies 里勾选:
    • Spring Web(这是做 Web 接口的核心)
  5. 点击 Next → Finish

⏱️ 耗时约 2 分钟

第 2 步:认识项目结构

生成的项目长这样(只看关键部分):

demo/
├── src/
│   └── main/
│       ├── java/com/example/demo/
│       │   └── DemoApplication.java  ← 主启动类
│       └── resources/
│           └── application.properties ← 配置文件
└── pom.xml  ← 依赖清单(Maven 用)

第 3 步:写第一个接口

在 com.example.demo 包下新建一个 Java 文件: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:“这个类是用来处理 Web 请求的”
  • @GetMapping("/hello"):当用户访问 /hello 时,执行下面的方法
  • @RequestParam String name:从 URL 参数中取出 name 的值(比如 ?name=李四)

第 4 步:启动项目

找到 DemoApplication.java,右键 → Run 'DemoApplication.main()'

你会看到控制台输出:

Tomcat started on port(s): 8080 (http)
...
Started DemoApplication in 2.3 seconds

✅ 成功了!你的 Web 服务已经在 http://localhost:8080 运行了。

第 5 步:测试接口

打开浏览器,输入:

http://localhost:8080/hello?name=小明

页面会显示:

你好,小明!

🎉 恭喜!你刚刚完成了人生第一个 Spring Boot 接口!

💡 新手常见问题:
Q:为什么端口是 8080?能改吗?
A:可以!在 application.properties 里加一行:

server.port=9090

重启后,服务就跑在 9090 端口了。


四、对比一下:如果用 Go 写同样的功能?

我知道有些同学也听说过 Go 语言(Golang),它也以“简单快速”著称。那我们快速对比一下:

项目 Spring Boot (Java) Go
代码量 稍多(需注解) 极简
启动速度 较慢(几秒) 极快(毫秒级)
学习曲线 中等(需理解面向对象) 平缓
生态系统 非常成熟(企业级应用首选) 快速成长(适合微服务、CLI 工具)

Go 版本的“问候服务”长这样(供参考):

package main

import (
    "fmt"
    "net/http"
)

func hello(w http.ResponseWriter, r *http.Request) {
    name := r.URL.Query().Get("name")
    fmt.Fprintf(w, "你好,%s!", name)
}

func main() {
    http.HandleFunc("/hello", hello)
    http.ListenAndServe(":8080", nil)
}

🔍 我的开发心得:
Java/Spring Boot 更适合大型、长期维护的项目(银行、电商等),而 Go 更适合高性能、轻量级服务(API 网关、日志收集)。
作为初学者,先掌握一门主流语言更重要。Java 的就业面更广,生态更稳,是我当初转码的首选。


五、常见问题解答(避坑指南)

❌ 问题 1:启动时报错 “Address already in use”

原因:8080 端口被其他程序占用了(比如另一个 Spring Boot 项目没关)。

解决:

  • 关掉之前的进程
  • 或修改 server.port=8081 换个端口

❌ 问题 2:访问 /hello 返回 404

检查点:

  1. 类上有没有 @RestController?
  2. 方法上是不是 @GetMapping(不是 @PostMapping)?
  3. 项目是否成功启动?(看控制台有没有报错)

❌ 问题 3:中文乱码

解决:在 application.properties 添加:

server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true

❌ 问题 4:Maven 下载依赖很慢

解决:配置阿里云镜像(在用户目录下的 .m2/settings.xml 中添加):

<mirrors>
  <mirror>
    <id>aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Aliyun Maven</name>
    <url>https://maven.aliyun.com/repository/public</url>
  </mirror>
</mirrors>

六、下一步学习建议

你已经迈出了最关键的第一步!接下来可以:

✅ 短期目标(1 周内)

  • 学会接收 JSON 数据(用 @RequestBody)
  • 连接数据库(H2 内存数据库最简单)
  • 写单元测试(Spring Boot Test)

✅ 中期目标(1 个月内)

  • 理解 Spring 的依赖注入(DI)
  • 学习 MyBatis 或 JPA 操作数据库
  • 部署到云服务器(如阿里云 ECS)

📚 推荐资源

💬 最后说一句:
我当初学 Spring Boot 时,光是搞懂 @Autowired 就花了三天。但只要你坚持每天写点代码,一个月后回头看,你会惊讶于自己的进步。
技术没有捷径,但有方法——动手做,比看十遍都管用。


现在,合上教程,打开你的 IDEA,亲手敲一遍代码吧!
60 分钟后,你就是一名 Spring Boot 开发者了 👨‍💻

评论 0

最热最新
暂无评论
线程池保洁员Lv.1
0
影响力
0
文章
0
粉丝