本文手把手带你从零搭建 SpringBoot 项目,实现Redis 缓存 + MySQL 日志 + 第三方接口调用,并完成服务器打包部署,全程与 Node.js 对比,新手也能快速上手。
一、新建 SpringBoot 项目
核心功能与 Node.js 版本完全一致:
✅ Redis 缓存天气数据
✅ MySQL 记录查询日志(IP / 浏览器 / 设备等)
✅ 调用第三方天气接口
✅ 接口参数校验
1. 项目初始化
使用阿里云脚手架(速度更快,解决没有java8问题):
https://start.aliyun.com


2. 手动添加 MyBatis-Plus 依赖
Spring 官方依赖库不含 MyBatis-Plus(第三方增强框架),需手动引入。
在 pom.xml 的 <dependencies> 内添加:
xml
<!-- MyBatis-Plus 核心依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
3. 刷新 Maven 依赖
- IDEA 可视化操作(推荐)

- 打开右侧 Maven 面板
- 右键项目 → Reload Project(刷新图标)
- 等待依赖下载完成,红色报错自动消失
- 命令行刷新
打开底部 Terminal,执行:
bash
mvn clean compile -DskipTests
二、项目运行配置
1. 项目核心版本参数
| 选项 | 取值 |
|---|---|
| JDK | 1.8(服务器兼容首选) |
| Java | 8 |
| Spring Boot | 2.6.13 |
| 打包方式 | Jar |
| 基础依赖 | Spring Web、Spring Data Redis、MySQL Driver、Lombok |
2. 启动警告说明

运行时出现如下日志,属于 macOS + JDK1.8 特有系统警告,完全不影响功能:
objc[57167]: Class JavaLaunchHelper is implemented in both
3. JSON 返回原理(重点)
SpringBoot 内置 Jackson,自动完成对象转 JSON:
- 返回
String→ 输出字符串(带转义) - 返回
Map/Object/实体类→ 自动转为标准 JSON
支持类型:Map、Object、HashMap、AbstractMap 等,底层为 Map 时,返回 JSON 完全一致。
三、打包发布到服务器
1. 关键配置修复(必改)
修改 pom.xml 中的插件配置:

xml
<!-- 错误配置(会导致无法运行) -->
<skip>true</skip>
<!-- 正确配置 -->
<skip>false</skip>
true:跳过 SpringBoot 打包,生成普通 Jarfalse:生成可执行 Jar ,否则服务器报错:no main manifest attribute
2. 两种打包方式
-
IDEA 可视化打包
IDEA 右侧 Maven → Lifecycle → 双击 package
-
命令行打包(推荐)
bash
mvn clean package -DskipTests
clean:清理旧包,删除 target 文件夹package:执行打包-DskipTests:跳过测试,加快打包速度
打包后文件路径:
target/SpringBootDemo-0.0.1-SNAPSHOT.jar
3. 服务器运行命令
bash
# 1. 前台运行(测试用)
java -jar SpringBootDemo-0.0.1-SNAPSHOT.jar
# 2. 后台运行(生产用,关闭终端不退出)
nohup java -jar SpringBootDemo-0.0.1-SNAPSHOT.jar > weather.log 2>&1 &
# 3. 停止服务
# 查找进程号
ps -ef | grep java
netstat -tulnp | grep :4000
# 杀死进程
kill -9 进程号
四、可运行Demo与git步骤
附录:Node.js ↔ Java 技术对照表
1. 框架 / 组件对应关系
| Node.js 技术 | Java 技术 | 作用说明 |
|---|---|---|
| Express | Spring Boot | Web 框架,开发 HTTP 接口 |
| redis 库 | Spring Data Redis | Redis 缓存操作 |
| mysql2 | MyBatis-Plus + MySQL 驱动 | MySQL 数据库操作 |
| axios | RestTemplate | 调用第三方 HTTP 接口 |
2. 开发特性对比
| 特性 | Node.js | Java (Spring Boot) |
|---|---|---|
| 项目结构 | 扁平化 | 分层架构(Controller/Service/Mapper) |
| 依赖管理 | npm/yarn | Maven/Gradle |
| 数据操作 | 手写 SQL | MyBatis-Plus 自动 CRUD |
| 配置管理 | 常量文件 | application.yml + 注解注入 |
| 依赖引入 | require | @Autowired 自动注入 |
3. 依赖功能对应
| 分类 | Spring 依赖 | 对应 Node.js 功能 |
|---|---|---|
| 接口 | Spring Web | Express 提供接口服务 |
| NoSQL | Spring Data Redis | redis 库操作缓存 |
| SQL | MySQL Driver | mysql2 连接数据库 |
| SQL 增强 | MyBatis-Plus | 简化数据库 CRUD,无需手写 SQL |
| 开发工具 | Lombok | 自动生成 getter/setter,简化代码 |
| 登录验证 | JWT | jsonwebtoken |
4、SpringBoot 5 大必备库
- Spring Web → 接口
- MySQL → 存数据
- Redis → 缓存
- MyBatis-Plus → 操作数据库
- JWT → 登录验证
