# StarPivot
**Repository Path**: xin1998/StarPivot
## Basic Information
- **Project Name**: StarPivot
- **Description**: 星枢/StarPivot
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-18
- **Last Updated**: 2026-03-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
StarPivot 是基于 Spring Boot + Vue 3 的前后端分离 RBAC 管理与数据分析系统。下列内容聚焦架构、关键配置与快速上手。
---
## 1. 项目概览
### 项目简介
StarPivot 是一个现代化的企业级权限管理系统,旨在提供完整的用户认证、授权和系统管理功能。该项目适用于需要精细化权限控制的各类企业管理平台、后台管理系统和数据分析系统。
### 项目特点
- 🚀 **现代化技术栈**:采用最新的 Spring Boot 3、Vue 3 等前沿技术
- 🔐 **安全可靠**:基于 JWT 的无状态认证机制,具备令牌黑名单管理
- ⚡ **高性能**:集成 Redis 缓存,有效提升系统响应速度
- 🎨 **用户友好**:支持中英文国际化、亮色/暗色主题切换
- 📊 **数据可视化**:内置 ECharts 图表支持,便于数据分析
- 🛠️ **易扩展**:模块化设计,代码生成器支持快速开发
### 技术栈
- **后端**:Spring Boot 3.2.10、Spring Security 6.3.4、MyBatis-Plus 3.5.8、MySQL 9.1.0、Redis、JWT、Druid、SpringDoc OpenAPI
- **前端**:Vue 3.5.21、TypeScript 5.6.3、Vite 7.1.5、Element Plus 2.11.2、Pinia 3.0.3、Vue Router 4.5.1、Tailwind CSS 4.1.14、ECharts 6.0.0
- **工具**:Maven、pnpm 8.8.0+、Node.js 20.19.0+
### 项目结构
- **后端**:Maven 多模块架构,分层为 **star-pivot-dependencies**(依赖 BOM)、**star-pivot-framework**(框架层:common / security / quartz)、**star-pivot-module**(业务层:system / generator)、**star-pivot-controller**(启动入口,仅依赖业务模块);前端通过 HTTP 调用后端
- **前端**:独立 Vue 3 项目,通过 Axios 与后端 API 交互
### 核心功能
- ✅ 用户/角色/菜单/权限管理(RBAC)
- ✅ 部门管理(树形结构)
- ✅ 字典管理(数据字典)
- ✅ 岗位管理
- ✅ JWT 无状态认证与令牌黑名单
- ✅ 动态菜单与按钮级权限控制
- ✅ Redis 缓存优化(菜单树、字典数据)
- ✅ 文件上传(MinIO 对象存储)
- ✅ 代码生成器(基于 MyBatis-Plus Generator)
- ✅ 国际化支持(中英文)
- ✅ 主题切换(亮色/暗色)
- ✅ 数据可视化(ECharts 图表)
- ✅ API 文档(集成 SpringDoc OpenAPI)
- ✅ 系统监控与性能分析
## 2. 模块说明
- **star-pivot-dependencies**:依赖 BOM,统一管理第三方及内部模块版本。
- **star-pivot-framework**(聚合):框架层,下含
- **细化子模块**
- `star-pivot-framework-core`:核心(domain、exception、constants、sql、基础 utils、SecurityUtils)。
- `star-pivot-framework-log`:操作日志(@Log 注解、LogUtils 脱敏/IP/UA)。
- `star-pivot-framework-file`:文件存储(MinioUtil、OssUtil、MinioProperties)。
- `star-pivot-framework-web`:Web 抽象(LoginUserInfo 等)。
- `star-pivot-common`:通用层聚合(pom,依赖 core+log+file+web,保持对原 common 的引用兼容)。
- `star-pivot-security`:Spring Security + JWT 认证、过滤器、安全配置。
- `star-pivot-quartz`:定时任务调度。
- `star-pivot-framework-boot-starter`:框架启动聚合(common+security+quartz),应用层可只依赖本模块。
- **star-pivot-module**(聚合):业务层,下含
- `star-pivot-system`:领域模型(`SysUser`/`SysRole`/`SysMenu` 等)、Mapper 与 Service。
- `star-pivot-generator`:代码生成器。
- **star-pivot-controller**:启动入口、Web 配置(CORS/异常/拦截器/MyBatis-Plus/Redis)、业务 Controller;仅依赖 framework 与 module。
- **star-pivot-ui**:Vue 3 + Vite 前端,动态路由与菜单渲染,基于 Element Plus 的后台界面。
## 3. 架构图与流程图
### 3.1 分层系统架构图(从客户端到基础设施)
按「客户端 → 过滤器链 → 业务模块 → 接口/控制 → 框架层 → 依赖管理 → 基础设施」分层,详见 [doc/架构图与流程图.md](doc/架构图与流程图.md#1-分层系统架构图从客户端到基础设施)。
```mermaid
flowchart TB
subgraph Client["客户端层"]
Web1[Web 后台 Vue3]
Web2[Web 前台]
App[移动端 APP]
end
subgraph Entry["统一入口"]
Tomcat["Spring Boot Tomcat :8080 /api"]
end
subgraph AppLayer["应用层 / 过滤器链"]
F1["CorsFilter 跨域"]
F2["JwtAuthenticationFilter 认证"]
F3["Spring Security 过滤器链"]
F1 --> F2 --> F3
end
subgraph Biz["业务模块层"]
M1["star-pivot-system"]
M2["star-pivot-generator"]
M3["扩展模块"]
end
subgraph API["接口 / 控制层"]
A1["Controller / Service / Mapper"]
end
subgraph Framework["框架层"]
FW1["framework-core"]
FW2["framework-log / file / web"]
FW3["star-pivot-common"]
FW4["star-pivot-security"]
FW5["star-pivot-quartz"]
FW6["framework-boot-starter"]
end
subgraph Dep["依赖管理层"]
BOM["star-pivot-dependencies"]
end
subgraph Infra["基础设施层"]
MySQL["MySQL"]
Redis["Redis"]
MinIO["MinIO / 文件"]
end
Web1 --> Tomcat
Web2 --> Tomcat
App --> Tomcat
Tomcat --> F1
F3 --> M1
F3 --> M2
F3 --> M3
M1 --> A1
M2 --> A1
M3 --> A1
A1 --> FW6
FW6 --> FW3
FW6 --> FW4
FW6 --> FW5
FW3 --> FW1
FW3 --> FW2
FW6 --> BOM
FW3 --> MySQL
FW4 --> Redis
FW2 --> MinIO
```
### 3.2 系统总体架构图
```mermaid
flowchart TB
subgraph 用户端
User[用户浏览器]
end
subgraph 前端["star-pivot-ui (Vue 3)"]
Vue[Vue 3 + Vite]
Element[Element Plus]
Pinia[Pinia]
Router[Vue Router]
Vue --> Element
Vue --> Pinia
Vue --> Router
end
subgraph 网关与代理
Nginx[Nginx / 开发代理]
end
subgraph 后端["star-pivot-controller (Spring Boot)"]
Controller[Controller 层]
Security[Security + JWT]
Controller --> Security
end
subgraph 框架与业务["Framework & Module"]
Framework[framework-boot-starter]
System[star-pivot-system]
Generator[star-pivot-generator]
Framework --> System
Framework --> Generator
end
subgraph 数据与存储
MySQL[(MySQL)]
Redis[(Redis)]
MinIO[MinIO / OSS]
end
User --> Vue
Vue --> Nginx
Nginx --> Controller
Controller --> Framework
Framework --> MySQL
Framework --> Redis
Framework --> MinIO
```
### 3.3 后端模块分层与依赖关系
```mermaid
flowchart LR
subgraph 依赖层
BOM[star-pivot-dependencies
BOM]
end
subgraph 启动层
Boot[star-pivot-controller]
end
subgraph 业务层
System[star-pivot-system]
Gen[star-pivot-generator]
end
subgraph 框架层
Starter[framework-boot-starter]
Core[framework-core]
Log[framework-log]
File[framework-file]
Web[framework-web]
Common[star-pivot-common]
Sec[star-pivot-security]
Quartz[star-pivot-quartz]
end
BOM --> Starter
Boot --> System
Boot --> Gen
Boot --> Starter
System --> Starter
Gen --> Starter
Starter --> Common
Starter --> Sec
Starter --> Quartz
Common --> Core
Common --> Log
Common --> File
Common --> Web
```
### 3.4 认证与授权流程图
```mermaid
sequenceDiagram
participant 用户
participant 前端
participant Nginx
participant Controller
participant JwtFilter as JWT 过滤器
participant Auth as AuthController
participant Redis
用户->>前端: 输入账号密码
前端->>Nginx: POST /api/auth/login
Nginx->>Controller: 转发
Controller->>JwtFilter: 放行登录接口
Controller->>Auth: login()
Auth->>Auth: 校验用户名密码
Auth->>Auth: 生成 JWT
Auth->>前端: 返回 token + 用户信息
前端->>前端: 存储 token,构建路由/菜单
Note over 用户,Redis: 后续请求
用户->>前端: 访问业务接口
前端->>Nginx: 请求头 Authorization Bearer token
Nginx->>Controller: 转发
Controller->>JwtFilter: 拦截
JwtFilter->>JwtFilter: 解析 token、校验签名与过期
JwtFilter->>Redis: 检查黑名单 key
alt 在黑名单或无效
JwtFilter->>前端: 401 Unauthorized
else 有效
JwtFilter->>JwtFilter: 设置 SecurityContext
JwtFilter->>Controller: 放行至业务
Controller->>前端: 返回业务数据
end
用户->>前端: 点击登出
前端->>Nginx: POST /api/auth/logout + Bearer token
Nginx->>Controller: 转发
Controller->>Auth: logout()
Auth->>Redis: 将 token 加入黑名单
Auth->>前端: 登出成功
```
### 3.5 请求处理与权限校验流程
```mermaid
flowchart LR
A[HTTP 请求] --> B{是否 /api/auth/login
或白名单?}
B -->|是| C[直接放行]
B -->|否| D[JWT 过滤器]
D --> E{Token 有效
且不在黑名单?}
E -->|否| F[401 未授权]
E -->|是| G[设置用户上下文]
G --> H[进入 Controller]
H --> I{接口需要权限?}
I -->|是| J[校验权限/角色]
J --> K{有权限?}
K -->|否| L[403 禁止]
K -->|是| M[执行业务逻辑]
I -->|否| M
M --> N[返回结果]
C --> O[登录/文档等]
```
## 4. 技术与依赖管理
- 顶层 `pom.xml` 使用 Spring Boot 官方 BOM(`spring-boot-dependencies`)统一三方版本。
- 内部模块依赖通过 Maven 模块引用,不在 `dependencyManagement` 冗余声明。
## 5. 快速开始
> **首次构建说明**:依赖版本由 `star-pivot-dependencies` BOM 统一管理,**首次构建或清理后构建时,请先安装 BOM**,再编译启动模块:
> ```bash
> mvn install -f star-pivot-dependencies/pom.xml
> ```
> 然后再执行下文「后端启动」中的 `mvn -pl star-pivot-controller -am clean install`。
### 环境要求
- **后端**:JDK 17+、Maven 3.6+、MySQL 5.7+ / 8.0+、Redis 5.0+、MinIO(可选,用于文件上传)
- **前端**:Node.js 20.19.0+、pnpm 8.8.0+(推荐)或 npm/yarn
### 数据库初始化
1. 创建数据库:
```sql
CREATE DATABASE `star-pivot` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
2. 导入 SQL 脚本:
```bash
mysql -u root -p star-pivot < sql/star-pivot.sql
```
### 后端启动
1. **配置数据库和 Redis**:编辑 `star-pivot-controller/src/main/resources/application.yml`
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/star-pivot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username: root
password: your_password
data:
redis:
host: 127.0.0.1
port: 6379
password: # 如有密码请填写
```
2. **配置 JWT 密钥**(生产环境建议使用环境变量):
```yaml
jwt:
secret: ${JWT_SECRET:your-secret-key-here}
expiration: 86400000 # 24小时,单位:毫秒
```
3. **启动应用**:
```bash
# 编译并安装依赖
mvn -pl star-pivot-controller -am clean install
# 启动应用
mvn -pl star-pivot-controller spring-boot:run
```
或使用 IDE 直接运行 `StarPivotApplication.java`
4. 应用默认运行在 `http://localhost:8080`,context-path 为 `/api`
### 前端启动
1. **进入前端目录**:
```bash
cd star-pivot-ui
```
2. **安装依赖**(推荐使用 pnpm):
```bash
pnpm install
# 或使用 npm
npm install
```
3. **配置环境变量**(如需要):
- 复制 `.env.example` 为 `.env`(如果存在)
- 配置后端 API 地址(通常在 `vite.config.ts` 中配置代理)
4. **启动开发服务器**:
```bash
pnpm dev
# 或
npm run dev
```
默认运行在 `http://localhost:5173`(Vite 默认端口)
5. **构建生产版本**:
```bash
pnpm build
# 或
npm run build
```
### 默认账号
- 用户名:`admin`
- 密码:admin123
## 6. 认证与授权(Spring Security + JWT)
- 核心配置:安全配置在 **star-pivot-security** 模块,如 `star-pivot-security/src/main/java/com/star/pivot/security/SecurityConfig.java`。
- JWT 生成/解析、密钥管理(`JwtUtil`、`JwtKeyManager`)及黑名单(`JwtBlackListManager`)均统一由 **star-pivot-security** 模块提供,业务层通过依赖该模块使用,避免重复实现。
- 过滤器:`JwtAuthenticationFilter` 从 `Authorization: Bearer ` 解析用户,校验签名与过期,检查黑名单。
- 黑名单:`JwtBlackListManager`(Redis,key 形如 `jwt:logout:{token}`,TTL 为剩余有效期)。
- 登录:`POST /api/auth/login` -> `AuthController.login` -> 生成 JWT 返回。
- 登出:`POST /api/auth/logout` -> 将 token 写入黑名单并清空上下文。
- 放行:`/api/auth/login` 及可选的 Swagger/Knife4j 文档路径;其余均需认证。
## 7. 缓存策略
- 开关:`@EnableCaching` + Redis。
- 菜单树:`SysMenuServiceImpl.menuTree()` 使用 `@Cacheable(cacheNames = "menuTree", key = "'all'")`;菜单变更使用 `@CacheEvict(allEntries = true)`。
- 字典数据:`DictDataServiceImpl.selectDictDataByType` 使用 `@Cacheable(cacheNames = "dictData", key = "#dictType")`;变更时 `@CacheEvict(allEntries = true)`。
## 8. 菜单 / 路由 / 权限映射
- 后端模型:`SysMenu`(表 `sys_menu`),字段 `path` 对应前端路由,`component` 对应前端组件路径(如 `system/user/index`),`perms` 对应按钮/操作权限。
- 角色授权:`SysRole` 通过 `sys_role_menu`、`sys_user_role` 绑定菜单与权限点。
- 登录后接口 `AuthController.getCurrentUser` 返回用户、角色、菜单/权限列表(admin 返回全量),前端据此构建动态路由和侧边菜单,控制按钮可见性。
## 9. 路由与前端约定
- 路由入口:`star-pivot-ui/src/router/index.ts`,`createWebHistory()` 模式,部署需代理兜底(如 Nginx `try_files $uri /index.html;`)。
- 静态路由:登录/注册/异常页等在 `staticRoutes`;首页常量 `HOME_PAGE_PATH = '/dashboard/console'`,应与后台菜单的主工作台一致。
## 10. 主要功能模块
### 系统管理
- **用户管理** (`SysUserController`):用户 CRUD、启用/禁用、重置密码、分配角色
- **角色管理** (`SysRoleController`):角色 CRUD、权限分配(菜单权限)
- **菜单管理** (`SysMenuController`):菜单树形结构、路由配置、权限标识
- **部门管理** (`SysDeptController`):部门树形结构、负责人管理
- **岗位管理** (`PostController`):岗位信息管理
- **字典管理** (`DictTypeController`, `DictDataController`):字典类型与字典数据管理
### 认证授权
- **登录/登出** (`AuthController`):JWT 认证、获取当前用户信息、权限列表
- **路由信息** (`RouterController`):获取用户可访问的路由菜单
### 文件管理
- **头像上传** (`AvatarController`):基于 MinIO 或阿里云 OSS 的文件上传功能
- **MinIO 工具类** (`MinioUtil`):提供文件上传、下载、删除等操作的便捷方法
- **OSS 工具类** (`OssUtil`):兼容阿里云 OSS 的文件操作功能
### 代码生成
- 基于 MyBatis-Plus Generator,支持单表/树表代码生成
- 配置路径:`application.yml` 中的 `gen` 配置项
## 11. 配置要点
### 后端配置
- **接口前缀**:`server.servlet.context-path: /api`,外部调用统一 `/api/**`,Spring Security 内部匹配不含 context-path(如 `/auth/login`)
- **CORS 配置**:`cors.allowed-origins`,生产环境建议配置具体域名,开发环境可使用 `*`
- **Redis**:用于缓存与 JWT 黑名单,需确保连接信息正确
- **MinIO**(可选):用于文件上传,配置 `minio.endpoint`、`minio.access-key`、`minio.secret-key`、`minio.bucket-name`。如需使用 MinIO,请确保已在配置文件中正确配置,并添加相应依赖。
- **MyBatis-Plus**:逻辑删除字段 `deleted`,自动填充创建/更新时间
- **日志级别**:可通过环境变量 `LOG_LEVEL`、`SQL_LOG_LEVEL` 控制
### 前端配置
- **API 代理**:在 `vite.config.ts` 中配置开发环境代理
- **路由模式**:使用 `createWebHistory()`,生产环境需配置 Nginx 路由兜底
- **环境变量**:支持通过 `.env` 文件配置不同环境变量
- **国际化**:支持中英文切换,配置文件在 `src/locales/langs/`
## 12. 项目结构
### 后端模块结构
```
StarPivot/
├── star-pivot-dependencies/ # 依赖 BOM
├── star-pivot-framework/ # 框架层聚合
│ ├── star-pivot-framework-core/ # 核心(domain、exception、constants、sql、utils)
│ ├── star-pivot-framework-log/ # 操作日志(@Log、LogUtils)
│ ├── star-pivot-framework-file/ # 文件(MinIO、OSS)
│ ├── star-pivot-framework-web/ # Web 抽象(LoginUserInfo)
│ ├── star-pivot-common/ # 通用聚合(pom,= core+log+file+web)
│ ├── star-pivot-security/ # 安全与 JWT
│ ├── star-pivot-quartz/ # 定时任务
│ └── star-pivot-framework-boot-starter/ # 启动聚合(common+security+quartz)
├── star-pivot-module/ # 业务层聚合
│ ├── star-pivot-system/ # 系统核心
│ └── star-pivot-generator/ # 代码生成
└── star-pivot-controller/ # 启动与 Web 层
```
### 前端项目结构
```
star-pivot-ui/
├── src/
│ ├── api/ # API 接口定义
│ ├── assets/ # 静态资源(图片、样式)
│ ├── components/ # 组件库(表单、表格、图表、布局等)
│ ├── config/ # 配置文件
│ ├── directives/ # 自定义指令(权限、角色)
│ ├── hooks/ # 组合式函数(useAuth、useTable 等)
│ ├── locales/ # 国际化资源
│ ├── router/ # 路由配置(静态路由、动态路由、路由守卫)
│ ├── store/ # Pinia 状态管理(用户、菜单、设置等)
│ ├── types/ # TypeScript 类型定义
│ ├── utils/ # 工具函数(HTTP、存储、表单验证等)
│ └── views/ # 页面视图(系统管理、仪表盘、异常页等)
├── public/ # 公共资源
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
└── package.json # 项目依赖
```
## 13. API 接口说明
### 认证相关
- `POST /api/auth/login` - 用户登录
- `POST /api/auth/logout` - 用户登出
- `GET /api/auth/getCurrentUser` - 获取当前用户信息(含权限列表)
### 系统管理
- `GET/POST/PUT/DELETE /api/system/user/**` - 用户管理
- `GET/POST/PUT/DELETE /api/system/role/**` - 角色管理
- `GET/POST/PUT/DELETE /api/system/menu/**` - 菜单管理
- `GET/POST/PUT/DELETE /api/system/dept/**` - 部门管理
- `GET/POST/PUT/DELETE /api/system/post/**` - 岗位管理
- `GET/POST/PUT/DELETE /api/system/dict/type/**` - 字典类型管理
- `GET/POST/PUT/DELETE /api/system/dict/data/**` - 字典数据管理
### 路由信息
- `GET /api/router/userMenuTree` - 获取当前用户的菜单树(根据用户权限)
- `GET /api/router/dynamic-routes` - 获取当前用户的动态路由列表(根据用户权限)
### 通用导入导出
- `POST /api/common/import-export/import/{businessType}` - 导入数据(需要 `system:{businessType}:import` 权限,如 `system:user:import`)
- `POST /api/common/import-export/export/{businessType}` - 导出数据(需要 `system:{businessType}:export` 权限,如 `system:user:export`)
- `GET /api/common/import-export/template/{businessType}` - 下载导入模板(需要 `system:{businessType}:import` 权限)
### 文件上传
- `POST /api/avatar/upload` - 上传头像
## 14. 部署与运维建议
### 后端部署
- **打包**:`mvn clean package -DskipTests`
- **运行**:`java -jar star-pivot-controller/target/star-pivot-controller-0.0.1-SNAPSHOT.jar`
- **环境变量**:生产环境建议通过环境变量配置敏感信息(数据库密码、JWT 密钥、Redis 密码等)
- **JVM 参数**:建议配置 `-Xms512m -Xmx1024m` 等内存参数
- **日志**:配置 `logback-spring.xml` 或使用 `logging.level` 控制日志级别
- **健康检查**:Spring Boot Actuator 提供健康检查端点(如已引入)
### 前端部署
- **构建**:`pnpm build` 或 `npm run build`,生成 `dist` 目录
- **Nginx 配置示例**:
```nginx
server {
listen 80;
server_name your-domain.com;
root /path/to/dist;
index index.html;
# 路由兜底,支持前端路由
location / {
try_files $uri $uri/ /index.html;
}
# API 代理
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
### 开发建议
- **代码规范**:后端遵循 Java 编码规范,前端使用 ESLint + Prettier + Stylelint
- **Git 提交**:前端项目支持 Commitizen 规范提交
- **模块划分**:保持使用 Spring Boot BOM,避免手动指定 Spring 相关版本;HTTP 与安全过滤器收敛在 `controller`,领域逻辑放 `system`
- **权限管理**:在团队内明确菜单字段与前端路由、`perms` 的对应关系,避免新增页面/按钮时遗漏授权
- **性能优化**:读多写少的菜单/字典接口开启缓存,变更时依赖注解自动驱逐
## 15. 常见问题排查
### 后端问题
1. **启动失败**:检查数据库连接、Redis 连接、端口占用
2. **JWT 验证失败**:检查 JWT 密钥配置、token 是否过期、是否在黑名单中
3. **权限验证失败**:检查用户角色、菜单权限配置
4. **缓存不生效**:检查 Redis 连接、`@EnableCaching` 是否启用
### 前端问题
1. **接口请求失败**:检查后端服务是否启动、CORS 配置、代理配置
2. **路由跳转 404**:检查 Nginx 路由兜底配置、路由路径是否正确
3. **权限按钮不显示**:检查 `v-auth` 指令使用、权限标识配置
4. **菜单不显示**:检查用户角色权限、菜单数据格式
## 16. 常用路径速览
### 后端关键文件
- **启动类**:`star-pivot-controller/src/main/java/com/star/pivot/StarPivotApplication.java`
- **安全配置**:`star-pivot-security/src/main/java/com/star/pivot/security/SecurityConfig.java`
- **JWT 过滤器**:`star-pivot-security/src/main/java/com/star/pivot/security/JwtAuthenticationFilter.java`
- **JWT 与黑名单**(统一由 **star-pivot-security** 模块提供):`JwtUtil.java`、`JwtKeyManager.java`、`JwtBlackListManager.java`,路径均为 `star-pivot-security/src/main/java/com/star/pivot/security/`
- **菜单服务**:`star-pivot-system/src/main/java/com/star/pivot/system/service/impl/SysMenuServiceImpl.java`
- **用户服务**:`star-pivot-system/src/main/java/com/star/pivot/system/service/impl/SysUserServiceImpl.java`
- **配置文件**:`star-pivot-controller/src/main/resources/application.yml`
### 前端关键文件
- **路由入口**:`star-pivot-ui/src/router/index.ts`
- **静态路由**:`star-pivot-ui/src/router/routes/staticRoutes.ts`
- **API 配置**:`star-pivot-ui/src/utils/http/index.ts`
- **权限指令**:`star-pivot-ui/src/directives/core/auth.ts`
- **用户 Store**:`star-pivot-ui/src/store/modules/user.ts`
- **菜单 Store**:`star-pivot-ui/src/store/modules/menu.ts`
- **Vite 配置**:`star-pivot-ui/vite.config.ts`
## 17. 技术文档
- **架构图与流程图**:查看 [doc/架构图与流程图.md](doc/架构图与流程图.md)(含 RBAC 模型、前端路由与菜单加载、缓存流程等)
- **前端详细文档**:查看 `star-pivot-ui/README.md` 和 `star-pivot-ui/readed.md`
- **数据库设计**:查看 `sql/star-pivot.sql`
- **API 文档**:项目集成了 SpringDoc OpenAPI (Swagger UI),提供了完整的 API 文档支持:
- **Swagger UI**: 访问 `http://localhost:8080/swagger-ui.html` 查看交互式 API 文档
- **API 文档地址**: `http://localhost:8080/v3/api-docs` 提供 JSON 格式的 OpenAPI 规范
- **Knife4j 增强版**: 如果配置了 Knife4j,访问 `http://localhost:8080/doc.html` 可获得更丰富的功能
API 文档默认在开发环境下开放,生产环境中可通过配置 `security.swagger-permit-all=false` 关闭访问。
---
## 贡献指南
欢迎任何形式的贡献!如果您想为项目做出贡献,请遵循以下步骤:
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
---
## 许可证
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
---
**StarPivot** - 基于 Spring Boot + Vue 3 的企业级权限管理系统