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,并通过贝锐花生壳…