Spring Boot 入门指南:从零搭建 Java Web 开发环境
① 技术栈用途介绍:Spring Boot 到底是'谁'?能帮你做什么?
想象你是一家奶茶店老板,想开发一个「线上点单小程序」:
- 需要用户登录(安全)
- 要展示菜单(页面/接口)
- 要下单并存入数据库(数据操作)
- 还得快速上线、方便改菜单(开发效率)
Spring Boot 是简化 Spring 应用开发的框架,内置 Tomcat 和自动配置功能。本文介绍从零开始使用 Spring Boot 进行 Java Web 开发的全流程。内容包括技术栈用途、环境准备(JDK 17、Maven、IDEA)、生成项目脚手架、编写第一个 RESTful 接口、对象序列化响应以及配置文件修改。同时对比了传统 Spring MVC 与 Spring Boot 的差异,分析了优缺点及适用场景,适合希望快速掌握企业级后端开发技术的初学者。
想象你是一家奶茶店老板,想开发一个「线上点单小程序」:
传统 Java Web 开发就像自己盖房子:先打地基(Servlet 容器)、砌墙(配置 web.xml)、装门窗(引入 Jackson、Logback、MyBatis…),耗时又易错。
Spring Boot 就是「精装交付的智能小屋」:
@SpringBootApplication 就启动整个 Web 应用mvn spring-boot:run 直接访问 http://localhost:8080典型场景:企业后台管理系统、微服务模块、内部工具平台、教学项目、创业 MVP 快速验证。
| 工具 | 版本建议 | 下载方式 |
|---|---|---|
| JDK 17 | LTS 长期支持版 | Oracle JDK 或 Eclipse Temurin |
| IDEA Community(推荐)或 VS Code | 最新版 | JetBrains 官网 |
| Maven 3.8+ | 自带 IDEA / VS Code 插件,可免手动安装 | 检查命令:mvn -v |
Unsupported class file major version 61 → JDK 版本太高(如 JDK 21),而 Spring Boot 3.x 才完全支持;小白请统一用 JDK 17 + Spring Boot 2.7.x(兼容性最佳)Cannot resolve symbol 'SpringBootApplication' → Maven 未刷新依赖 → 右键项目 → Reload project(IDEA)java -version 和 mvn -v 均显示版本号即 OK!我们来做一个超简单的「今日奶茶推荐」API:访问 /api/drink 返回一句 JSON。
打开 https://start.spring.io(Spring 官方在线生成器):
com.example(公司域名倒写,随便填)springboot-demo(项目名)Generate 下载 springboot-demo.zip,解压后用 IDEA 打开。在 src/main/java/com/example/springbootdemo/ 下新建包 controller,再新建文件 DrinkController.java:
package com.example.springbootdemo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 表示这是返回 JSON 的接口类
public class DrinkController {
@GetMapping("/api/drink") // 访问路径
public String recommend() {
return "{\"name\":\"芋圆波波鲜奶\", \"sweet\":\"少糖\", \"temperature\":\"常温\"}";
}
}
SpringbootDemoApplication.java(含 main 方法),点击绿色三角形 ▶️ 运行Tomcat started on port(s): 8080 即启动成功!✅ 你将看到:
{"name":"芋圆波波鲜奶", "sweet":"少糖", "temperature":"常温"}
💡 小知识卡片:
@RestController = @Controller + @ResponseBody → 自动把返回值转成 JSON@GetMapping 是 HTTP GET 请求的快捷写法web.xml、不用配 DispatcherServlet、不用部署 WAR 包 —— 全部 Spring Boot 自动搞定!新建类 Drink.java:
public class Drink {
private String name;
private String sweet;
private String temperature;
// 构造函数 + getter/setter(IDEA 快捷键:Alt+Insert → Generate)
}
修改 recommend() 方法:
@GetMapping("/api/drink")
public Drink recommend() {
return new Drink("杨枝甘露", "半糖", "冰");
}
→ 自动序列化为标准 JSON!无需任何额外配置(Jackson 已内置)。
application.properties打开 src/main/resources/application.properties,添加:
# 修改端口(避免 8080 被占用)
server.port=9090
# 中文不乱码
spring.http.encoding.charset=UTF-8
# 开启调试日志(学习时超有用)
logging.level.org.springframework.web=DEBUG
重启应用,现在访问 http://localhost:9090/api/drink 即可!
Spring Boot 的魔法 = 自动配置(Auto-Configuration) + 起步依赖(Starter)
spring-boot-starter-web 依赖 → 自动导入 Tomcat、Spring MVC、Jackson 等全套组件@SpringBootApplication → 启用自动配置扫描 + 组件扫描 + 配置加载spring.factories 文件,根据 classpath 中的 jar 包「猜」你需要什么配置,并为你准备好 Bean!| 维度 | 说明 |
|---|---|
| ✅ 优点 | 上手极快、生态庞大(海量 Starter)、文档友好、企业主流、社区活跃、天然支持微服务拆分 |
| ⚠️ 局限性 | 抽象层较深,初学者可能「知其然不知其所以然」;过度自动配置有时难排查问题;不适合超轻量嵌入式场景 |
| 🆚 vs 传统 Spring MVC | 少写 80% XML/JavaConfig,开发效率翻倍,运维更简单(内嵌容器) |
| 🆚 vs Node.js/Python Flask | Java 生态在高并发、事务一致性、企业级监控方面更强;但启动略慢、语法稍重 |
| 📚 后续学习建议 | → 学 Spring Boot + MyBatis 实现增删改查 → 接入 MySQL → 加 Spring Security 登录 → 拆成 Spring Cloud 微服务 → 部署到 Docker |
💬 给小白的一句鼓励:你写的第一个
/api/drink接口,和大厂后台系统的底层逻辑并无本质不同——只是 Spring Boot 把'搭架子'的苦活,默默替你干完了。接下来,专注业务,就是高手的开始。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online