first commit

This commit is contained in:
2026-06-12 01:09:25 +08:00
commit 1b577e55fe
349 changed files with 22015 additions and 0 deletions
+110
View File
@@ -0,0 +1,110 @@
<div align="center">
<h2>server-java</h2>
<img alt="Java" src="https://img.shields.io/badge/Java-17-brightgreen.svg"/>
<img alt="SpringBoot" src="https://img.shields.io/badge/SpringBoot-3.3.2-green.svg"/>
<img alt="license" src="https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg"/>
</div>
基于 JDK 17、Spring Boot 3.3.2、Spring Security 6、JWT、Redis、MyBatis-Plus、Knife4j 构建的前后端分离单体业务系统。
## 项目概况
- **开发框架**Spring Boot 3.3.2 + Spring Security 6 + MyBatis-Plus 3.5.7
- **安全认证**Spring Security + JWT 无状态认证,部分接口白名单免登录
- **权限管理**:基于 RBAC 模型,细粒度控制到接口方法和按钮级别
- **功能模块**:用户管理、角色管理、菜单管理、部门管理、字典管理、代码生成、文件管理、邮件、短信、支付(支付宝/微信)等
- **接口文档**:Knife4j 自动生成,支持在线调试
## 项目目录
```
src/main/java/com/ichangzuo/
iczApplication.java # 启动类
common/ # 公共模块:注解、常量、枚举、异常、工具类
config/ # 自动装配配置(CORS、Redis、Security、Swagger 等)
core/ # 核心功能:切面(日志、防重提交)、过滤器、Security
module/ # 业务模块
auth/ # 认证模块
codegen/ # 代码生成器
file/ # 文件模块
mail/ # 邮件模块
sms/ # 短信模块
websocket/ # WebSocket 模块
system/ # 系统管理模块:用户、角色、菜单、部门、字典等
controller/
converter/ # MapStruct 转换器
event/ # 事件处理
handler/
listener/
model/ # bo, dto, entity, form, query, vo
mapper/
service/
```
## 技术选型
| 技术 | 版本 | 说明 |
|------|------|------|
| JDK | 17 | |
| Spring Boot | 3.3.2 | 开发框架 |
| Spring Security | 6 | 安全认证 |
| MyBatis-Plus | 3.5.7 | ORM 框架 |
| Knife4j | 4.5.0 | 接口文档 |
| MapStruct | 1.5.5.Final | 对象映射 |
| Druid | 1.2.23 | 数据库连接池 |
| XXL-JOB | 2.4.2 | 定时任务 |
| Redisson | 3.30.0 | 分布式锁 |
## 环境依赖
- **MySQL**:数据库名 `music`,开发配置在 `application-dev.yml`
- **Redis**:端口 16378
- **运行时 Profile**
- `dev`(默认):本地开发
- `test`:测试环境
- `prod`:生产环境
## 快速开始
### 1. 配置数据库
修改 `src/main/resources/application-dev.yml` 中的 MySQL、Redis 连接配置。
### 2. 启动项目
```bash
# 开发模式启动(使用 dev profile
mvn spring-boot:run -P dev
```
### 3. 验证启动
访问接口文档地址 [http://localhost:8989/doc.html](http://localhost:8989/doc.html) 验证项目启动是否成功。
## 常用命令
```bash
# 开发模式启动
mvn spring-boot:run -P dev
# 打包(默认 dev
mvn clean package
# 测试环境打包
mvn clean package -P test
# 生产环境打包
mvn clean package -P prod
# 运行测试
mvn test
# 跳过测试打包
mvn clean package -DskipTests
```
## 接口文档
- `knife4j` 接口文档:[http://localhost:8989/doc.html](http://localhost:8989/doc.html)
- `swagger` 接口文档:[http://localhost:8989/swagger-ui/index.html](http://localhost:8989/swagger-ui/index.html)