SpringBoot3后端項目介紹:mybig-event

mybig-event

項目簡介

mybig-event 是一個基于 Spring Boot 的事件管理系統,提供用戶管理、文章發布、分類管理、文件上傳等功能,采用現代化的 Java 技術棧構建,支持高效開發和部署。在這里插入圖片描述
倉庫鏈接:https://github.com/foorgange/mybig-event/tree/master

技術棧

  • 核心框架:Spring Boot 3.1.3
  • 數據訪問:MyBatis 3.0.0、PageHelper 1.4.7
  • 數據庫:MySQL 8.0.33
  • 緩存:Redis
  • 認證授權:JWT (java-jwt 4.4.0)
  • 文件存儲:阿里云 OSS (aliyun-sdk-oss 3.15.1)
  • 數據校驗:Spring Boot Starter Validation
  • 工具類:Lombok、MD5 加密
  • 構建工具:Maven
  • 開發工具:IntelliJ IDEA
  • CI/CD:GitHub Actions

功能模塊

1. 用戶管理模塊

  • 用戶注冊與登錄(支持 JWT 認證)
  • 個人信息查詢與修改
  • 頭像上傳(對接阿里云 OSS)
  • 密碼修改與安全驗證

2. 文章管理模塊

  • 文章發布與編輯
  • 文章分類與狀態管理(已發布 / 草稿)
  • 文章列表分頁查詢
  • 支持按分類和狀態篩選

3. 分類管理模塊

  • 分類的增刪改查
  • 分類數據校驗

4. 文件上傳模塊

  • 基于阿里云 OSS 的文件存儲
  • 支持圖片上傳并返回訪問 URL

項目結構

plaintext

mybig-event/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── itheima/
│   │   │       ├── controller/      # 控制器層
│   │   │       ├── service/         # 服務層
│   │   │       ├── mapper/          # 數據訪問層
│   │   │       ├── pojo/            # 實體類
│   │   │       └── utils/           # 工具類
│   │   └── resources/
│   │       ├── application.yml      # 全局配置
│   │       └── com/itheima/mapper/  # MyBatis 映射文件
│   └── test/                        # 測試代碼
├── .github/workflows/               # GitHub Actions 配置
├── .idea/                           # IDEA 項目配置
├── pom.xml                          # Maven 依賴配置
└── .gitignore                       # Git 忽略文件配置

快速開始

環境要求

  • JDK 17+
  • MySQL 8.0+
  • Redis 5.0+
  • Maven 3.6+

配置步驟

  1. 克隆倉庫
    bash

    git clone https://github.com/yourusername/mybig-event.git
    cd mybig-event
    
  2. 修改配置文件
    編輯 src/main/resources/application.yml?,配置數據庫和 Redis 連接:
    yaml

    spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/big_eventusername: 你的數據庫用戶名password: 你的數據庫密碼data:redis:host: localhostport: 6379password: 你的Redis密碼(如無則留空)
    
  3. 配置阿里云 OSS
    編輯 src/main/java/itheima/utils/AliOssUtil.java?,修改 OSS 配置:
    java

    運行

    private static final String ENDPOINT = "你的OSS地域節點";
    private static final String ACCESS_KEY_ID = "你的ACCESS_KEY_ID";
    private static final String ACCESS_KEY_SECRET = "你的ACCESS_KEY_SECRET";
    private static final String BUCKET_NAME = "你的Bucket名稱";
    

    建議生產環境通過環境變量注入密鑰,避免硬編碼

  4. 創建數據庫
    在 MySQL 中創建數據庫 big_event?,并根據實體類創建對應表結構(可通過 MyBatis 逆向工程生成)。

  5. 構建與運行
    bash

    mvn clean package
    java -jar target/mybig-event-1.0-SNAPSHOT.jar
    

    服務將在 http://localhost:9090? 啟動

API 示例

用戶注冊

bash

POST /user/register
Content-Type: application/json{"username": "testuser","password": "testpass123"
}

文章發布

bash

POST /article
Content-Type: application/json
Authorization: Bearer {your-jwt-token}{"title": "測試文章","content": "這是一篇測試文章","coverImg": "https://example.com/img.jpg","state": "已發布","categoryId": 1
}

開發指南

  1. 代碼規范:遵循阿里巴巴 Java 開發手冊
  2. 提交規范:使用語義化提交信息(如 feat: 新增文章查詢接口?)
  3. 測試要求:核心功能需編寫單元測試
  4. 分支管理:使用 master? 作為主分支,功能開發使用 feature 分支

自動化構建

項目配置了 GitHub Actions 自動化構建流程,當代碼推送到 master? 分支或創建 Pull Request 時,將自動執行以下操作:

  1. 檢查代碼
  2. 構建項目
  3. 運行測試
  4. 生成依賴報告

許可證

本項目采用 MIT 許可證 - 詳見 LICENSE 文件(如未提供則默認保留所有權利)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919485.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919485.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919485.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

week3-[分支嵌套]方陣

week3-[分支嵌套]方陣 題目描述 有 nmn\times mnm 個人站成 nnn 行 mmm 列的方陣。我們想知道第 xxx 行 yyy 列的人的某個方向有沒有人。 輸入格式 輸入共 222 行。 第 111 行輸入 444 個正整數 n,m,x,yn,m,x,yn,m,x,y。 第 222 行輸入 111 個字符為 U、D、L、R 其中之一&#…

深入理解C++ std::shared_ptr:現代C++內存管理的藝術與實踐

在C++的發展歷程中,內存管理始終是開發者面臨的核心挑戰。從C語言繼承而來的手動內存管理方式,雖然提供了極大的靈活性,卻也成為無數程序錯誤的根源。內存泄漏、懸空指針、雙重釋放等問題長期困擾著C++開發者,直到智能指針的出現改變了這一局面。作為C++11標準引入的重要特…

一個 WPF 文檔和工具窗口布局容器

一個 WPF 文檔和工具窗口布局容器、用于排列文檔 和工具窗口的方式與許多知名 IDE 類似,例如 Eclipse、Visual Studio、 PhotoShop 等等 AvalonDock 是一個 WPF 文檔和工具窗口布局容器,用于排列文檔 和工具窗口的方式與許多知名 IDE 類似,例…

【qml-5】qml與c++交互(類型單例)

背景: 【qml-1】qml與c交互第一次嘗試(實例注入) 【qml-2】嘗試一個有模式的qml彈窗 【qml-3】qml與c交互第二次嘗試(類型注冊) 【qml-4】qml與c交互(類型多例) 【qml-5】qml與c交互&#…

循環神經網絡(RNN)、LSTM 與 GRU (一)

循環神經網絡(RNN)、LSTM 與 GRU (一) 文章目錄循環神經網絡(RNN)、LSTM 與 GRU (一)循環神經網絡(RNN)、LSTM 與 GRU一、RNN(Recurrent Neural N…

【AAOS】Android Automotive 16模擬器源碼下載及編譯

源碼下載repo init -u https://android.googlesource.com/platform/manifest -b android-16.0.0_r2 repo sync -c --no-tags --no-clone-bundle源碼編譯source build/envsetup.sh lunch sdk_car_x86_64-bp2a-eng make -j8運行效果emualtorHomeAll appsSettingsHAVCNotification…

jvm三色標記

好的,咱們把專業概念和生活例子結合起來,一步一步說清楚三色標記法:一、核心概念:用“顏色”給對象貼“狀態標簽”就像給家里的物品貼標簽,每種顏色代表它在“垃圾回收(大掃除)”中的狀態&#…

生成式AI的能力邊界與職業重構:從“百科實習生“到人機協作增強器

根據微軟最新研究,基于20萬條Copilot使用數據及用戶反饋,研究者揭示了生成式AI在實際應用中的能力邊界與職業影響。數據顯示,用戶使用AI助手最頻繁的任務是信息獲取(占比近40%),其次是公眾溝通類工作&#…

java17學習筆記

Java17是一個重要的特性發布,也是比較常用的一個版本,根據 2024Java生態統計,Java 17、11 和 8 的用戶比例分別為 35%、33% 和 29%。它遵循了自Java10以來引入的Java發布步調,并于2021年 9 月 14 日發布,在Java16發布后…

【AI應用】修改向量數據庫Milvus默認密碼

說明: 1)部署向量數據庫milvus運行一段時間后,想開啟密碼認證登錄attu頁面 2)開啟密碼認證登錄,提示用戶和密碼不正確,因為默認密碼已存儲在物理機 3)通過attu管理頁面修改向量數據庫milvus默認…

分布式系統消息隊列:可靠投遞與延時消息實戰

在分布式系統架構中,消息隊列(MQ)作為解耦服務、削峰填谷、異步通信的核心組件,其消息投遞的可靠性與延時消息的精準性直接影響業務系統的穩定性。本文結合實際業務場景,詳細解析消息投遞的全流程設計與延時消息的通用…

Java 學習筆記(基礎篇6)

面向對象基礎1. 類和對象(1) 示例:public class Student {String name "張三";int age 23;public void study() {System.out.println("學習 Java");}public void eat() {System.out.println("吃飯");} }public class Test {public …

光學件加工廠倚光科技:陪跑光學未來力量

在光學創新的漫漫長路上,總有一些看似 “不劃算” 的堅持,卻在悄然改寫行業的未來。倚光科技的故事,就始于這樣一種選擇 —— 明知光學打樣利潤微薄,明知上百個項目中能走到量產的寥寥無幾,仍愿意投入全球頂尖的設備與…

RabbitMQ:生產者可靠性(生產者重連、生產者確認)

目錄一、生產者重連二、生產者確認一、生產者重連 當網絡不穩定的時候,利用重試機制可以有效提高消息發送的成功率。不過SpringAMQP提供的重試機制是阻塞式的重試,也就是說多次重試過程中,當前線程是被阻塞的,會影響業務性能。 …

【深度學習新浪潮】空天地數據融合技術在城市三維重建中的應用

空天地數據融合技術在城市三維重建中的應用已取得顯著進展,尤其在提升精度以滿足具身智能機器人仿真訓練需求方面,研究和產品均呈現多樣化發展。以下是關鍵研究進展、產品方案及精度要求的詳細分析: 一、研究進展與技術路徑 1. 多源數據融合的技術突破 時空基準統一:通過…

Selenium自動化測試入門:cookie處理

🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快driver.get_cookies() # 獲得cookie 信息driver.get_cookies(name) # 獲得對應name的cookie信息add_cookie(cookie_dict) # 向cookie 添加會話信息delete_cookie(na…

快解析如何讓遠程訪問更安全?

一、勒索病毒攻擊服務器的途徑很多用戶服務器對外開放,實現外網訪問,擔心服務器被勒索病毒攻擊!勒索病毒攻擊服務器的途徑之一是通過路由器開放的端口進行掃描攻擊,所以盡量不要在服務器的路由器和防火墻中開放端口二、快解析如何…

Linux下編譯ARPACK

本文記錄Linux下編譯ARPACK的流程。 零、環境 操作系統Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、依賴 1.1 安裝oneAPI 參見:Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 二、編譯ARPACK …

芋道RBAC實現介紹

說明:之前寫過一篇博客,介紹如何搭建一個基于角色的權限驗證框架 搭建一個基于角色的權限驗證框架 本文介紹在非常受歡迎的開源框架——芋道中是如何實現 RBAC 的,芋道的部署參考下面這篇文章: 芋道微服務代碼部署 介紹 一般…

Docker部署Jellyfin,沒有公網IP如何使用內網穿透遠程訪問?

Jellyfin是一款完全開源、免費的媒體服務器,可幫助你快速搭建屬于自己的私人流媒體平臺:電影、劇集、音樂、照片統統收納,跨設備隨點隨播。本文將以最簡潔的步驟,演示如何在Docker容器中部署Jellyfin,并通過貝銳花生殼…