跳到主要内容Spring Boot 从入门到实战开发指南 | 极客日志Javajava
Spring Boot 从入门到实战开发指南
Spring Boot 教程涵盖框架定义、核心优势、环境配置、项目搭建、Hello World 示例及企业级实战开发。内容包含统一返回结果封装、全局异常处理、接口参数校验等关键技能,以及项目打包部署流程。适合 Java 后端开发者快速掌握 Spring Boot 核心功能与最佳实践。
虚拟内存22 浏览 Spring Boot 从入门到实战开发指南
一、什么是 Spring Boot?
Spring Boot 是由 Pivotal 团队研发的,基于 Spring 框架的快速开发脚手架,它不是对 Spring 的替换,而是对 Spring 的封装和增强。
简单理解:Spring Boot = Spring + 自动配置 + 内嵌 Web 容器 + 一站式依赖管理
我们不用再手动整合 Spring、SpringMVC、Tomcat、MyBatis 等组件,不用写一堆 xml 配置文件,Spring Boot 帮我们把这些都做好了,我们只需要专注于业务逻辑开发即可。
二、Spring Boot 核心优势
- 快速搭建项目:通过脚手架一键生成项目结构,无需手动配置,几分钟就能创建一个可运行的后端项目;
- 开箱即用,自动配置:Spring Boot 会根据我们引入的依赖,自动完成对应的配置(比如引入 web 依赖,自动配置 SpringMVC + 内嵌 Tomcat),零配置 / 极少配置即可开发;
- 内嵌 Web 容器:内置 Tomcat、Jetty、Undertow,项目打包后是一个 jar 包,无需部署到外部 Tomcat,直接 java -jar 就能运行,部署超级方便;
- 一站式依赖管理:通过 starter 起步依赖,一键引入相关技术栈的所有依赖,解决了 Spring 生态依赖版本冲突的痛点;
- 完全兼容 Spring 生态:可以无缝整合 MyBatis、Redis、RabbitMQ、SpringCloud 等所有 Spring 全家桶技术;
- 生产级别的特性:自带健康检查、指标监控、日志管理,无需额外开发即可用于生产环境。
三、开发环境准备
统一版本避免踩坑,建议配置如下:
- JDK 版本:
1.8 (企业开发主流版本)
- 构建工具:
Maven 3.6+ (Spring Boot 推荐,IDEA 自带)
- 开发工具:
IDEA 2020+ (旗舰版最佳,社区版也够用)
- Spring Boot 版本:
2.7.x (稳定版,生产环境主流)
注意:为什么不用 JDK11/17?企业老项目基本都是 JDK8,实习接触的项目 99% 都是 JDK8,先掌握主流版本。
四、快速搭建第一个 Spring Boot 项目
方式一:Spring 官网脚手架创建
访问 https://start.spring.io/,步骤如下:
- Project:选择
Maven Project
- Language:选择
Java
- Spring Boot:选择
2.7.18
- Group:包名,格式
com.xxx
- Artifact:项目名,例如
springboot-demo
- Java:选择
8
- 点击「ADD DEPENDENCIES」,添加核心依赖:Spring Web
- 点击「GENERATE」,下载 zip 压缩包,解压后用 IDEA 打开。
方式二:IDEA 快捷创建
- 打开 IDEA → 新建项目 → 选择「Spring Initializr」→ 下一步
- 填写项目信息:Group(com.demo)、Artifact(springboot-demo)、Java Version(8)→ 下一步
- 选择依赖:在「Web」分类下勾选「Spring Web」→ 下一步
选择项目存储路径 → 完成。五、Spring Boot 项目核心结构解析
springboot-demo // 项目根目录
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com.demo // 你的包名
│ │ │ ├── SpringbootDemoApplication.java // 项目启动类【核心】
│ │ │ ├── controller // 控制层:写接口的地方【核心】
│ │ │ ├── service // 业务层:写业务逻辑的地方【核心】
│ │ │ ├── mapper // 数据层:操作数据库(MyBatis)
│ │ │ └── pojo // 实体类:封装数据
│ │ └── resources
│ │ ├── application.properties // 全局配置文件【核心】
│ │ ├── static // 静态资源:css、js、图片
│ │ └── templates // 模板页面:thymeleaf
│ └── test // 测试目录
└── pom.xml // Maven 核心文件:管理依赖和项目配置【核心】
核心文件说明
- 启动类:项目的入口,带有
@SpringBootApplication 注解,运行这个类的 main 方法,项目就启动了。一个项目只能有一个启动类,且启动类要放在所有业务包的最外层。
- 配置文件:
application.properties 或 application.yml,支持两种格式,两者任选其一即可。
- Maven 文件:
pom.xml,管理项目的所有依赖,比如我们引入的 Spring Web、MyBatis 等。
package com.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemoApplication.class, args);
}
}
六、第一个 Spring Boot 接口:Hello World
步骤 1:创建 Controller 控制层
在 com.demo 包下新建 controller 包,然后创建 HelloController.java 类:
package com.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello Spring Boot!";
}
}
核心注解解释
@RestController:组合注解 = @Controller + @ResponseBody,将方法的返回值直接以 JSON / 字符串的形式返回给前端。
@GetMapping("/hello"):指定接口的请求方式为 GET,请求路径为 /hello。
步骤 2:启动项目,测试接口
- 找到启动类
SpringbootDemoApplication.java,右键点击「Run」,启动项目。
- 启动成功后,控制台会打印日志,看到
started ... 说明启动成功。
- 测试方式:打开浏览器,输入地址
http://localhost:8080/hello,回车就能看到返回的字符串。
提示:Spring Boot 默认端口是 8080,如果端口被占用,在 application.properties 中配置:server.port=8081 即可修改端口。
七、Spring Boot 核心实战开发
实战 1:全局统一返回结果封装
实际开发中,后端接口的返回格式必须统一、规范。无论接口成功还是失败,都要返回相同的 JSON 结构。
步骤 1:创建统一返回结果实体类
package com.demo.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
private Integer code;
private String msg;
private Object data;
public static Result success() {
return new Result(200, "操作成功", null);
}
public static Result success(Object data) {
return new Result(200, "操作成功", data);
}
public static Result error(String msg) {
return new Result(500, msg, null);
}
}
需要在 pom.xml 中引入 lombok 依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
步骤 2:改造接口,返回统一结果
@GetMapping("/user/{id}")
public Result getUserById(@PathVariable Integer id) {
if (id == 1) {
User user = new User(1, "张三", 22, "Java 后端开发者");
return Result.success(user);
} else {
return Result.error("用户不存在");
}
}
package com.demo.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String name;
private Integer age;
private String desc;
}
访问 http://localhost:8080/user/1,返回的 JSON 格式如下:
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1,
"name": "张三",
"age": 22,
"desc": "Java 后端开发者"
}
}
实战 2:全局统一异常处理
Spring Boot 提供了全局异常处理机制,通过 @RestControllerAdvice + @ExceptionHandler 注解,能统一捕获项目中所有的异常。
步骤 1:创建全局异常处理类
package com.demo.exception;
import com.demo.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public Result handleRuntimeException(RuntimeException e) {
e.printStackTrace();
return Result.error("服务器内部错误:" + e.getMessage());
}
@ExceptionHandler(Exception.class)
public Result handleException(Exception e) {
e.printStackTrace();
return Result.error("系统异常,请联系管理员");
}
}
实战 3:接口参数校验
后端接口接收前端传递的参数时,必须做参数合法性校验。Spring Boot 整合了 JSR380 规范,通过 @Valid + 校验注解 就能实现优雅的参数校验。
步骤 1:引入参数校验依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
步骤 2:在实体类中添加校验注解
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
@NotBlank(message = "用户名不能为空")
private String name;
@Min(value = 0, message = "年龄不能为负数")
@Max(value = 150, message = "年龄不能超过 150")
private Integer age;
private String desc;
}
步骤 3:在接口中添加 @Valid 注解开启校验
@PostMapping("/user/add")
public Result addUser(@Valid @RequestBody User user) {
return Result.success("用户添加成功");
}
八、项目打包与部署
Spring Boot 项目开发完成后,需要打包部署到服务器运行。打包非常简单,打包后是一个可执行的 jar 包,内置了 Tomcat。
步骤 1:打包项目
在 IDEA 右侧找到「Maven」面板,展开项目 → 生命周期 → 双击「package」,开始打包。
步骤 2:运行 jar 包
打开命令行,进入 jar 包所在的目录,执行以下命令即可启动项目:
java -jar springboot-demo-0.0.1-SNAPSHOT.jar
九、总结与学习建议
本文核心知识点总结
- Spring Boot 的定义和核心优势,理解为什么它是后端开发的主流框架;
- 两种快速搭建 Spring Boot 项目的方式,以及项目的核心目录结构;
- 入门案例 Hello World,掌握了
@RestController、@GetMapping 等核心注解;
- 企业级必备的三大实战技能:统一返回结果、全局异常处理、接口参数校验;
- 项目的打包与部署,学会了如何将项目打包成 jar 包并运行。
学习建议
- 先吃透基础,再谈进阶:先把本文的知识点全部掌握,再去学习整合 MyBatis 操作数据库、Redis 缓存等进阶技术;
- 多敲代码,少看视频:把本文的所有代码都手动敲一遍,运行成功,理解每一行代码的含义;
- 遇到问题先自己排查:学会看控制台日志,尝试自己解决问题;
- 保持学习的热情:Java 后端开发需要学习的东西很多,但只要一步一个脚印,循序渐进,你一定会成长。
Spring Boot 是 Java 后端开发的基石,希望这篇教程能帮你快速入门并掌握核心实战技能。
相关免费在线工具
- Keycode 信息
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
- Escape 与 Native 编解码
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
- JavaScript / HTML 格式化
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
- JavaScript 压缩与混淆
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online