SpringBoot項(xiàng)目從開發(fā)到打包發(fā)布的完整教程
一、新建 SpringBoot 項(xiàng)目
核心功能與 Node.js 版本完全一致:
? Redis 緩存天氣數(shù)據(jù)
? MySQL 記錄查詢?nèi)罩荆↖P / 瀏覽器 / 設(shè)備等)
? 調(diào)用第三方天氣接口
? 接口參數(shù)校驗(yàn)
1. 項(xiàng)目初始化
使用阿里云腳手架(速度更快,解決沒有java8問題):
https://start.aliyun.com


2. 手動添加 MyBatis-Plus 依賴
Spring 官方依賴庫不含 MyBatis-Plus(第三方增強(qiáng)框架),需手動引入。
在 pom.xml 的 <dependencies> 內(nèi)添加:
<!-- MyBatis-Plus 核心依賴 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>3. 刷新 Maven 依賴
- IDEA 可視化操作(推薦)

- 打開右側(cè) Maven 面板
- 右鍵項(xiàng)目 → Reload Project(刷新圖標(biāo))
- 等待依賴下載完成,紅色報錯自動消失
- 命令行刷新
打開底部 Terminal,執(zhí)行:
mvn clean compile -DskipTests
二、項(xiàng)目運(yùn)行配置
1. 項(xiàng)目核心版本參數(shù)
| 選項(xiàng) | 取值 |
|---|---|
| JDK | 1.8(服務(wù)器兼容首選) |
| Java | 8 |
| Spring Boot | 2.6.13 |
| 打包方式 | Jar |
| 基礎(chǔ)依賴 | Spring Web、Spring Data Redis、MySQL Driver、Lombok |
2. 啟動警告說明

運(yùn)行時出現(xiàn)如下日志,屬于 macOS + JDK1.8 特有系統(tǒng)警告,完全不影響功能:
objc[57167]: Class JavaLaunchHelper is implemented in both
3. JSON 返回原理(重點(diǎn))
SpringBoot 內(nèi)置 Jackson,自動完成對象轉(zhuǎn) JSON:
- 返回
String→ 輸出字符串(帶轉(zhuǎn)義) - 返回
Map/Object/實(shí)體類→ 自動轉(zhuǎn)為標(biāo)準(zhǔn) JSON
支持類型:Map、Object、HashMap、AbstractMap 等,底層為 Map 時,返回 JSON 完全一致。
三、打包發(fā)布到服務(wù)器
1. 關(guān)鍵配置修復(fù)(必改)
修改 pom.xml 中的插件配置:

<!-- 錯誤配置(會導(dǎo)致無法運(yùn)行) --> <skip>true</skip> <!-- 正確配置 --> <skip>false</skip>
true:跳過 SpringBoot 打包,生成普通 Jarfalse:生成可執(zhí)行 Jar,否則服務(wù)器報錯:no main manifest attribute
2. 兩種打包方式
- IDEA 可視化打包
IDEA 右側(cè) Maven → Lifecycle → 雙擊 package
- 命令行打包(推薦)
mvn clean package -DskipTests
clean:清理舊包,刪除 target 文件夾package:執(zhí)行打包-DskipTests:跳過測試,加快打包速度
打包后文件路徑:
target/SpringBootDemo-0.0.1-SNAPSHOT.jar
3. 服務(wù)器運(yùn)行命令
# 1. 前臺運(yùn)行(測試用) java -jar SpringBootDemo-0.0.1-SNAPSHOT.jar # 2. 后臺運(yùn)行(生產(chǎn)用,關(guān)閉終端不退出) nohup java -jar SpringBootDemo-0.0.1-SNAPSHOT.jar > weather.log 2>&1 & # 3. 停止服務(wù) # 查找進(jìn)程號 ps -ef | grep java netstat -tulnp | grep :4000 # 殺死進(jìn)程 kill -9 進(jìn)程號
附錄:Node.js ↔ Java 技術(shù)對照表
1. 框架 / 組件對應(yīng)關(guān)系
| Node.js 技術(shù) | Java 技術(shù) | 作用說明 |
|---|---|---|
| Express | Spring Boot | Web 框架,開發(fā) HTTP 接口 |
| redis 庫 | Spring Data Redis | Redis 緩存操作 |
| mysql2 | MyBatis-Plus + MySQL 驅(qū)動 | MySQL 數(shù)據(jù)庫操作 |
| axios | RestTemplate | 調(diào)用第三方 HTTP 接口 |
2. 開發(fā)特性對比
| 特性 | Node.js | Java (Spring Boot) |
|---|---|---|
| 項(xiàng)目結(jié)構(gòu) | 扁平化 | 分層架構(gòu)(Controller/Service/Mapper) |
| 依賴管理 | npm/yarn | Maven/Gradle |
| 數(shù)據(jù)操作 | 手寫 SQL | MyBatis-Plus 自動 CRUD |
| 配置管理 | 常量文件 | application.yml + 注解注入 |
| 依賴引入 | require | @Autowired 自動注入 |
3. 依賴功能對應(yīng)
| 分類 | Spring 依賴 | 對應(yīng) Node.js 功能 |
|---|---|---|
| 接口 | Spring Web | Express 提供接口服務(wù) |
| NoSQL | Spring Data Redis | redis 庫操作緩存 |
| SQL | MySQL Driver | mysql2 連接數(shù)據(jù)庫 |
| SQL 增強(qiáng) | MyBatis-Plus | 簡化數(shù)據(jù)庫 CRUD,無需手寫 SQL |
| 開發(fā)工具 | Lombok | 自動生成 getter/setter,簡化代碼 |
| 登錄驗(yàn)證 | JWT | jsonwebtoken |
4、SpringBoot 5 大必備庫
- Spring Web → 接口
- MySQL → 存數(shù)據(jù)
- Redis → 緩存
- MyBatis-Plus → 操作數(shù)據(jù)庫
- JWT → 登錄驗(yàn)證
以上就是SpringBoot項(xiàng)目從開發(fā)到打包發(fā)布的完整教程的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot項(xiàng)目開發(fā)到打包發(fā)布的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python如何使用@property @x.setter及@x.deleter
這篇文章主要介紹了Python如何使用@property @x.setter及@x.deleter,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
Java截取PDF內(nèi)容為圖片的實(shí)現(xiàn)代碼
本文主要介紹了java實(shí)現(xiàn)截取PDF指定頁并進(jìn)行圖片格式轉(zhuǎn)換功能的技術(shù)要點(diǎn),通過實(shí)例代碼,文章詳細(xì)地介紹了如何使用java語言來實(shí)現(xiàn)PDF指定頁的截取和圖片格式轉(zhuǎn)換,需要的朋友可以參考下2025-10-10
IntelliJ IDEA安裝scala插件并創(chuàng)建scala工程的步驟詳細(xì)教程
這篇文章主要介紹了IntelliJ IDEA安裝scala插件并創(chuàng)建scala工程的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Spring項(xiàng)目中Ordered接口的應(yīng)用之全局過濾器(GlobalFilter)的順序控制
在Spring框架,尤其是Spring Cloud Gateway或Spring WebFlux項(xiàng)目中,Ordered接口扮演著重要的角色,特別是在實(shí)現(xiàn)全局過濾器(GlobalFilter)時,用于控制過濾器執(zhí)行的優(yōu)先級,下面將介紹如何在Spring項(xiàng)目中使用Ordered接口來管理Global Filter的執(zhí)行順序,需要的朋友可以參考下2024-06-06
Java字符串拼接+和StringBuilder的比較與選擇
Java 提供了兩種主要的方式:使用 "+" 運(yùn)算符和使用 StringBuilder 類,本文主要介紹了Java字符串拼接+和StringBuilder的比較與選擇,感興趣的可以了解一下2023-10-10
一文帶你搞懂java如何實(shí)現(xiàn)網(wǎng)絡(luò)NIO高并發(fā)編程
NIO是?Java?在?JDK?1.4?中引入的一套新的?I/O?API,旨在解決傳統(tǒng)?I/O高并發(fā)場景下的性能和擴(kuò)展性不足的問題,下面就跟隨小編一起深入了解下NIO高并發(fā)編程吧2024-12-12

