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

极客生活家
2025-06-15 17:21
阅读 616

开篇:Spring Boot 是什么,用来做什么?

开篇:Spring Boot 是什么,用来做什么?

如果你是刚接触后端开发的新手,可能会听说过“Spring”这个名字,它是一个非常流行、功能强大的 Java 框架,专门用于构建企业级的应用程序。而 Spring Boot 则是在 Spring 基础上的升级版,它的核心目标是让开发者更快地搭建和运行 Spring 应用。

想象一下,如果我们把开发一个后端应用比作搭积木,那么传统的 Spring 就像是你需要自己准备所有的小块积木,还要花时间组装它们。而 Spring Boot 就像是一个“积木套装”,里面已经包含了大多数常用的组件,并且自动帮你组装好,你只需要专注于自己的需求即可。

简单来说,使用 Spring Boot 可以:

  • 快速创建基于 Java 的 Web 项目
  • 内置服务器,不需要额外配置 Tomcat 或其他容器
  • 自动配置很多常见的功能(如数据库连接、日志、安全控制等)
  • 提供丰富的插件系统,方便扩展功能

所以不管你是想做一个小的 API 接口服务,还是未来打算开发大型管理系统,Spring Boot 都是一个非常适合的起点!


环境准备:搭建你的第一个 Spring Boot 开发环境

环境准备:搭建你的第一个 Spring Boot 开发环境

要开始使用 Spring Boot,首先需要准备好开发环境。这里我们不会涉及太复杂的配置,只要跟着步骤一步步来,就能轻松完成安装和设置。

第一步:安装 JDK(Java Development Kit)

Spring Boot 是基于 Java 的框架,因此必须先安装 JDK(Java 开发工具包)。你可以从 Oracle 官网 或者 OpenJDK 发行版中选择一个版本进行下载安装。

安装完成后,打开终端或命令行窗口,输入以下命令检查是否安装成功:

java -version

你应该能看到类似下面的输出,说明 JDK 已正确安装:

java version "17.0.5" 2022-10-18 LTS
Java(TM) SE Runtime Environment ...

✨ 提示:建议使用 Java 17 或更高版本,这是目前 Spring Boot 最推荐使用的版本。


第二步:安装 IDE(集成开发环境)

为了更高效地编写代码,我们需要一个好用的编程工具。对于初学者来说,推荐使用 IntelliJ IDEA Community 版(免费)或者 Eclipse,两者都可以很好地支持 Spring Boot 开发。

下载 IntelliJ IDEA:

访问官方网站:https://www.jetbrains.com/idea/download/
根据你的操作系统(Windows、macOS 或 Linux),下载并安装 Community 版本即可。

安装完成后启动软件,稍等片刻会进入主界面。


第三步:安装 Spring Boot 插件

虽然 IntelliJ 和 Eclipse 已经自带了很多 Java 开发的支持,但为了让创建 Spring Boot 项目更加简便,我们可以使用官方提供的插件。

在 IntelliJ 中:

  1. 打开软件,点击右下角的 "Get from VCS""New Project"
  2. 在新建项目的界面中找到 "Spring Initializr"
  3. 点击 Next 后可以自动生成 Spring Boot 项目模板

如果你看不到这个选项,也可以手动安装 Spring Boot 插件:

  • 进入 Settings > Plugins
  • 搜索 “Spring Boot”
  • 安装并重启 IDE

第四步:测试你的环境

接下来我们快速生成一个 Spring Boot 项目,看看环境是否一切正常。

按照上面提到的方式,使用 IntelliJ 创建新项目,选择如下配置:

  • Project SDK: Java 17
  • Spring Boot Version: 使用最新稳定版本(例如 3.x)
  • Dependencies: 我们暂时选 Spring Web(用于构建 Web 服务)

然后点击 Finish,等待项目加载完成后,你会看到一个结构清晰的文件夹列表。

现在,在 IntelliJ 中点击右上方绿色三角形运行按钮,启动你的第一个 Spring Boot 项目。

如果控制台显示类似以下信息,恭喜你!环境已经准备好啦!

Tomcat started on port(s): 8080 (http)
Started Application in 3.2 seconds (JVM running for 4.1)

核心概念讲解:Spring Boot 有哪些关键组成部分?

核心概念讲解:Spring Boot 有哪些关键组成部分?

Spring Boot 虽然简化了开发流程,但它本身也包含了一些关键的核心概念。作为新手,了解这些基础术语有助于你在后续学习中更好地理解原理。

1. 什么是 Starter?

在 Spring Boot 中,“Starter” 是一种特殊的依赖项,它封装了某个功能所需的全部依赖和默认配置。

比如:

  • spring-boot-starter-web:用于开发 Web 应用(如 REST API)
  • spring-boot-starter-data-jpa:用于操作数据库
  • spring-boot-starter-security:用于添加登录权限控制功能

当你在 pom.xml 文件中加入这些 starter,Spring Boot 会自动帮你引入相关的库,并做好基本的配置,省去了繁琐的手动配置步骤。


2. @SpringBootApplication 注解的作用

这是一个非常重要也非常常见的注解,通常出现在主类上。它的作用相当于三个关键注解的组合:

  • @Configuration:表示这个类是配置类
  • @EnableAutoConfiguration:启用自动配置机制
  • @ComponentScan:扫描当前包及其子包中的组件(如 Controller、Service 等)

也就是说,加了这个注解的类,就是整个 Spring Boot 应用的入口点。

看个例子:

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

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

3. 什么是控制器(Controller)?

在 Spring Boot 中,控制器是用来处理 HTTP 请求的。你可以把它看作是一个“接待员”,负责接收客户端发来的请求,并返回相应的响应内容。

比如,我们要写一个简单的接口,当用户访问 /hello 时返回“Hello World”。

代码示例:

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

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello World!";
    }
}
  • @RestController 表示这个类是 REST 风格的控制器
  • @GetMapping 表示这是一个处理 GET 请求的方法
  • 方法返回的内容直接作为响应体发送给客户端

启动项目后,访问地址:http://localhost:8080/hello,你将看到页面上显示 "Hello World!"。


4. application.properties / application.yml

这两个文件是我们存放项目配置的地方,可以用来修改内嵌服务器的端口号、数据库连接信息等内容。

例如,将默认的 8080 端口改成 8000:

server.port=8000

或者使用 YAML 格式(更直观):

server:
  port: 8000

这样下次启动项目,访问链接就变成:http://localhost:8000/hello


实战项目:动手开发一个简单的学生信息管理系统

接下来我们将通过一个小项目来加深对 Spring Boot 的理解。目标是实现一个简易的学生信息管理模块,包括:

  • 显示所有学生信息
  • 添加新的学生记录
  • 删除指定学生记录

步骤一:创建项目结构

首先我们使用 Spring Initializr 创建一个新的 Spring Boot 项目,添加如下依赖:

  • Spring Web
  • Spring Data JPA
  • H2 Database(轻量型内存数据库,便于演示)

创建完成后打开项目结构,你应该会在 src/main/java 下看到你的主类以及一个空的包结构。


步骤二:设计数据模型

我们先定义一个名为 Student 的实体类,对应数据库中的 student 表:

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Student {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Integer age;

    // Getters and Setters
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public Integer getAge() { return age; }
    public void setAge(Integer age) { this.age = age; }
}

这个类加上了 @Entity 注解,表示它会被映射为数据库表。


步骤三:创建数据仓库接口(Repository)

JPA 提供了一个 Repository 接口,我们可以继承它来获得基础的数据库操作能力。

import org.springframework.data.jpa.repository.JpaRepository;

public interface StudentRepository extends JpaRepository<Student, Long> {
}

有了这个接口,就可以实现对学生数据的基本增删改查。


步骤四:编写控制器

接下来我们编写一个控制器来提供对外的服务接口。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/students")
public class StudentController {

    @Autowired
    private StudentRepository repository;

    // 获取所有学生
    @GetMapping
    public List<Student> getAllStudents() {
        return repository.findAll();
    }

    // 添加新学生
    @PostMapping
    public Student addStudent(@RequestBody Student student) {
        return repository.save(student);
    }

    // 删除学生
    @DeleteMapping("/{id}")
    public void deleteStudent(@PathVariable Long id) {
        repository.deleteById(id);
    }
}

这段代码实现了:

  • GET /students:获取所有学生数据
  • POST /students:添加学生
  • DELETE /students/{id}:按 ID 删除学生

步骤五:配置数据库(H2)

打开 application.properties 文件,添加以下内容:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update

这段配置告诉 Spring Boot 使用 H2 数据库,并且自动创建表结构。


步骤六:测试你的接口

启动项目后,我们可以使用 Postman 或 curl 来测试接口。

示例 1:添加学生

curl -X POST http://localhost:8080/students \
     -H "Content-Type: application/json" \
     -d '{"name": "张三", "age": 22}'

示例 2:查看所有学生

curl http://localhost:8080/students

你应该能收到类似这样的 JSON 回复:

[
  {"id": 1, "name": "张三", "age": 22}
]

示例 3:删除学生

curl -X DELETE http://localhost:8080/students/1

再次查询 /students,你会发现那条记录已被删除。


新手常见问题解答

以下是几个新手在学习 Spring Boot 过程中最常遇到的问题和解决方案。

🚫 启动时报错:Port 8080 was already in use

原因:8080 端口被其他程序占用了。

解决办法:在 application.properties 中修改端口号:

server.port=8000

📦 添加依赖后无法解析

原因:Maven 依赖未正确配置或网络不稳定导致未能下载包。

解决办法

  1. 确保 pom.xml 中的依赖名称和版本号正确。
  2. 在 IntelliJ 中右键项目 -> Maven -> Reload Project。
  3. 检查网络连接,确保可以访问 Maven Central 仓库。

💻 控制器方法没生效

原因

  • 没有正确使用 @RestController
  • URL 路径拼写错误
  • 方法没有打对应的注解(如 @GetMapping, @PostMapping

检查方式

  • 查看控制台输出的映射路径(通常会有提示信息)
  • 使用浏览器或 Postman 测试访问地址

🔧 想查看数据库表结构却不知道怎么下手?

你可以开启 H2 数据库的控制台,在 application.properties 中添加:

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

启动项目后访问:http://localhost:8080/h2-console
使用前面配置的 JDBC URL 和用户名密码登录即可查看和操作数据库。


学习建议:下一步该往哪里走?

恭喜你完成了这次 Spring Boot 的入门之旅!你现在已经能够创建一个简单的 Web 项目,并通过 HTTP 接口对数据库进行操作。但这只是冰山一角,想要真正掌握 Spring Boot,还有更多知识等着你去探索。

以下是一些进阶方向和学习资源推荐:

📘 继续深入学习的方向:

  1. 数据库操作进阶:学习如何使用 JPA 更高级的功能,比如关联表操作、原生 SQL 查询等。
  2. RESTful API 设计:了解如何设计规范、易维护的 API 接口,学习分页、排序、过滤等功能。
  3. 安全性控制:使用 Spring Security 来保护你的接口,防止非法访问。
  4. 前端对接:结合 Vue.js 或 React 与后端 API 进行交互,完成一个完整的前后端分离应用。
  5. 部署上线:学习如何将 Spring Boot 项目打包成 jar 文件并部署到服务器上。

🧠 推荐学习资料:

  • 官方文档https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
  • 书籍推荐
    • 《Spring Boot实战》(汪云飞 著)
    • 《Spring微服务实战》(John Carnell 著)
  • 视频课程:B站、慕课网、腾讯课堂都有高质量的 Spring Boot 教程,适合边学边练。
  • GitHub 示例:搜索开源的 Spring Boot 项目参考其架构和编码风格。

🌟 最后的小建议:

  • 多动手实践,遇到问题不要怕 Google,90% 的问题前人都踩过坑。
  • 加入技术社区(如 GitHub、Stack Overflow、掘金、知乎)交流经验。
  • 不要追求“一口气学会所有”,每天进步一点点,坚持下去就会有意想不到的收获。

继续加油,愿你在 Spring Boot 的学习之路上越走越远!🌟

评论 0

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