111 lines
3.5 KiB
Markdown
111 lines
3.5 KiB
Markdown
|
||
<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)
|