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 → 登录验证
相关推荐
splage25 分钟前
Spring Cloud Data Flow 简介
后端·spring·spring cloud
woniu_maggie27 分钟前
SAP RESTful 接口服务发布教程
后端
用户2794208313228 分钟前
临时解决 Mac SSH 客户端与服务器算法不匹配问题
后端
小锋java123431 分钟前
LangChain4j 来了,Java AI智能体开发再次起飞。。。
java·人工智能·后端
一点一一31 分钟前
nestjs+langchain:Prompt Template
人工智能·后端
Oneslide37 分钟前
低版本kubernetes节点卡死重置恢复方法
后端
eRRA OFAG42 分钟前
Windows 上彻底卸载 Node.js
windows·node.js
spring2997921 小时前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
Rust语言中文社区1 小时前
【Rust日报】Clone:像进程一样 fork 虚拟机的 Rust KVM VMM
开发语言·后端·rust
uzong1 小时前
架构师的必修课:分布式系统发布理论设计要点
后端·架构