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

后端App
2025-12-16 00:59
阅读 203

大家好,我是一名开源项目的维护者,也经常参与技术面试。在带新人和面试过程中,我发现很多初学者对 Spring Boot 既向往又畏惧——觉得它“高级”,但不知道从哪里下手。其实 Spring Boot 的设计初衷,就是让 Java 后端开发变得简单、快速、开箱即用

我当初学的时候,花了整整一周才跑通第一个“Hello World”,不是因为难,而是没人告诉我最核心的几步该怎么做。今天这篇教程,就是想帮你把这60分钟用在刀刃上——不讲理论堆砌,只聚焦你能立刻动手、立刻看到结果的关键步骤。文末还会附上几个高频 面试题综合 学习建议,助你顺利迈出后端开发第一步。


一、Spring Boot 是什么?能用来做什么?

简单说:Spring Boot 是一个帮你快速搭建 Java Web 应用的工具包

  • 它基于 Spring 框架(Java 最流行的后端框架),但做了大量简化。
  • 你不用再手动配置一堆 XML 文件,也不用担心依赖冲突。
  • 写几行代码,就能启动一个 Web 服务,处理 HTTP 请求。

💡 举个生活化的例子:
如果传统 Spring 开发像自己买零件组装电脑(要选 CPU、主板、电源……),那 Spring Boot 就像直接买一台品牌整机——插电就能用,性能还很稳。


二、环境准备(10分钟)

你需要安装以下工具:

工具 版本建议 作用
JDK 17 或 21(推荐) Java 运行环境
IDE IntelliJ IDEA(社区版免费)或 VS Code 写代码的编辑器
构建工具 Maven(默认)或 Gradle 管理项目依赖

避坑指南:不要用 JDK 8!虽然老项目还在用,但新项目强烈建议用 JDK 17+,Spring Boot 3.x 已不再支持 JDK 8。

步骤1:安装 JDK

  1. Oracle 官网OpenJDK 下载 JDK 17。
  2. 安装后,在终端执行:
    java -version
    
    看到类似 openjdk version "17.0.12" 即成功。

步骤2:创建项目(用 Spring Initializr)

这是 Spring Boot 官方提供的项目生成器,强烈推荐新手使用

  1. 打开浏览器,访问:https://start.spring.io/

  2. 按如下配置填写:

    • Project: Maven Project
    • Language: Java
    • Spring Boot: 3.3.x(最新稳定版)
    • Project Metadata:
      • Group: com.example
      • Artifact: demo
    • Dependencies(依赖):点击 Add Dependencies,搜索并添加:
      • Spring Web(用于构建 Web 接口)
  3. 点击 Generate,下载 ZIP 文件,解压后用 IDEA 打开。

🎯 小技巧:IDEA 也内置了 Spring Initializr!新建项目时选 “Spring Initializr” 即可,效果一样。


三、核心概念(用大白话解释)

刚接触时,你可能会听到这些词,别怕,我用最直白的方式解释:

术语 实际含义 类比理解
Controller 处理用户请求的“接待员” 就像餐厅服务员,接收点单(HTTP 请求),通知厨房(业务逻辑)
RequestMapping 绑定 URL 路径和方法的“门牌号” /hello → 对应 sayHello() 方法
Application 整个程序的“启动按钮” 主类里有 main() 方法,运行它就启动服务
Starter 预打包的功能模块(如 Web、数据库) 就像乐高套装,加一个 spring-boot-starter-web 就自动包含 Tomcat、JSON 解析等

四、实战项目:写一个“问候服务”(30分钟)

目标:访问 http://localhost:8080/hello?name=张三,返回 "你好,张三!"

步骤1:找到主启动类

src/main/java/com/example/demo 目录下,你会看到一个叫 DemoApplication.java 的文件:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

这个类就是整个应用的入口。先别动它,保持原样即可

步骤2:创建 Controller

在同一个包下,新建一个 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(defaultValue = "朋友") String name) {
        return "你好," + name + "!";
    }
}

代码解释:

  • @RestController:告诉 Spring 这是一个 Web 控制器,返回的内容直接作为 HTTP 响应(而不是跳转页面)。
  • @GetMapping("/hello"):当用户用 GET 方式访问 /hello 路径时,执行下面的方法。
  • @RequestParam:从 URL 参数中获取 name 的值。如果没传,默认是“朋友”。

步骤3:启动项目

  1. 在 IDEA 中,右键点击 DemoApplication.javaRun 'DemoApplication'
  2. 看到控制台输出:
    Tomcat started on port(s): 8080 (http)
    Started DemoApplication in 2.345 seconds
    
    表示启动成功!

步骤4:测试接口

打开浏览器,输入:

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

你会看到页面显示:

你好,小明!

✅ 恭喜!你已经完成了第一个 Spring Boot 应用!


五、常见问题 & 新手避坑(10分钟)

❓ 问题1:启动报错 Port 8080 was already in use

原因:你的电脑 8080 端口被其他程序占用了(比如另一个 Spring Boot 项目、Docker 容器等)。

解决

  • Windows:netstat -ano | findstr :8080 找到 PID,任务管理器结束进程。
  • Mac/Linux:lsof -i :8080kill -9 <PID>
  • 或者改端口:在 src/main/resources/application.properties 中加一行:
    server.port=8081
    

❓ 问题2:访问页面显示 404

可能原因

  • Controller 类没放在主启动类的子包下(Spring Boot 默认只扫描主类所在包及子包)。
  • 方法没加 @GetMapping 或路径写错。

检查清单

  • HelloController.javaDemoApplication.java 在同一个包或子包?
  • ✅ 方法上有 @GetMapping("/hello") 吗?
  • ✅ 浏览器地址是 http://localhost:8080/hello(不是 8081 或其他)?

❓ 问题3:中文乱码

解决:在 application.properties 中添加:

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

六、高频面试题 & 综合学习建议

🔍 面试题1:Spring Boot 和 Spring 有什么区别?

:Spring 是一个庞大的企业级框架,功能强大但配置复杂;Spring Boot 是 Spring 的“脚手架”,通过约定优于配置(Convention over Configuration)的理念,自动配置常用组件(如内嵌 Tomcat、JSON 转换),让你专注业务逻辑。

🔍 面试题2:@SpringBootApplication 注解的作用是什么?

:这是一个组合注解,相当于同时加上了:

  • @Configuration(声明当前类是配置类)
  • @EnableAutoConfiguration(启用自动配置)
  • @ComponentScan(自动扫描同包及子包下的组件)

🔍 面试题3:如何修改 Spring Boot 的启动端口?

:有三种方式(按优先级排序):

  1. 命令行参数:java -jar app.jar --server.port=9090
  2. 配置文件 application.propertiesserver.port=9090
  3. 代码中设置(不推荐):SpringApplication.set...

七、下一步怎么学?(综合路径建议)

你已经迈出了最关键的一步!接下来,我建议按这个顺序深入:

  1. 巩固基础(1周):

    • 学习 RESTful API 设计规范
    • 掌握 @PostMapping, @PathVariable, @RequestBody 等常用注解
    • 了解 application.properties 配置文件的作用
  2. 连接数据库(2周):

    • 添加 Spring Data JPA + H2(内存数据库,无需安装)
    • 实现简单的增删改查(CRUD)
  3. 项目实战(3周+):

    • 做一个“待办事项(Todo List)”API
    • 加入用户登录、数据校验、全局异常处理
  4. 扩展知识

    • 学习 Spring Security(安全认证)
    • 了解 Spring Boot Actuator(监控)
    • 尝试部署到云服务器(如阿里云、腾讯云)

💬 最后送你一句话
我当初学的时候,也是从一个“Hello World”开始的。所有复杂的系统,都始于一行能跑起来的代码。别怕犯错,多动手,60分钟后,你已经比昨天的自己更接近成为一名后端工程师了!


祝你编码愉快,有问题欢迎留言交流!

评论 0

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