SpringBoot 从开发到打包发布完整教程(对比 Node.js)

本文手把手带你从零搭建 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 可视化操作(推荐)
  1. 打开右侧 Maven 面板
  2. 右键项目 → Reload Project(刷新图标)
  3. 等待依赖下载完成,红色报错自动消失
  • 命令行刷新

打开底部 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

支持类型:MapObjectHashMapAbstractMap 等,底层为 Map 时,返回 JSON 完全一致。


三、打包发布到服务器

1. 关键配置修复(必改)

修改 pom.xml 中的插件配置:

xml 复制代码
<!-- 错误配置(会导致无法运行) -->
<skip>true</skip>

<!-- 正确配置 -->
<skip>false</skip>
  • true:跳过 SpringBoot 打包,生成普通 Jar
  • false:生成可执行 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步骤

下载demo

附录: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 大必备库

  1. Spring Web → 接口
  2. MySQL → 存数据
  3. Redis → 缓存
  4. MyBatis-Plus → 操作数据库
  5. JWT → 登录验证
相关推荐
xiaohuoji1292 小时前
SpringBoot中整合RabbitMQ(测试+部署上线 最完整)
spring boot·rabbitmq·java-rabbitmq
希望永不加班2 小时前
SpringBoot 接口测试:Postman 与 JUnit 5 实战
java·spring boot·后端·junit·postman
yzx9910132 小时前
Java毕业设计实战:基于Spring Boot的在线图书管理系统(完整版)
java·spring boot·课程设计
tumeng07112 小时前
跟据spring boot版本,查看对应的tomcat,并查看可支持的tomcat的版本范围
spring boot·后端·tomcat
深邃-2 小时前
字符函数和字符串函数(2)
c语言·数据结构·c++·后端·算法·restful
小码哥_常10 小时前
Spring Boot 牵手Spring AI,玩转DeepSeek大模型
后端
0xDevNull11 小时前
Java反射机制深度解析:从原理到实战
java·开发语言·后端
:mnong11 小时前
ClawX 项目设计分析
node.js·skill
华洛11 小时前
我用AI做了一个48秒的真人精品漫剧,不难也不贵
前端·javascript·后端