# cmdAdmin **Repository Path**: cmdshare/cmdAdmin ## Basic Information - **Project Name**: cmdAdmin - **Description**: cmdAdmin是基于Spring Cloud Alibaba体系微服务化分布式敏捷开发系统架构,提供整套公共微服务服务模块,其中包含用户管理、资源权限管理等多个模块,作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。 核心技术采用Spring Boot 2.2.7以及Spring Cloud 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,dubbo远程调用,集成Activiti工作流,动态表单+动态工作流,工作流下拉选择代理人,前端采用vue-element-admin组件。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 50 - **Forks**: 20 - **Created**: 2020-07-10 - **Last Updated**: 2026-01-25 ## Categories & Tags **Categories**: backend **Tags**: None ## README # 企业级管理系统脚手架 ## 项目概述 本项目是一个基于Spring Boot 4和Vue 3的企业级管理系统脚手架,采用单体架构设计,提供了完整的用户认证、权限管理、动态路由和菜单管理功能。 ## 技术栈 ### 后端 - Spring Boot 4.0.0 - JDK 21 - Spring Data JPA - PostgreSQL 18 - Redis - JWT 认证 - Spring Security ### 前端 - Vue 3 - Vite - Vue Router - Element Plus ## 目录结构 ``` cmdAdmin/ ├── src/ # 后端源代码 │ ├── main/ │ │ ├── java/ # Java 源代码 │ │ │ └── com/ │ │ │ └── cmdadmin/ │ │ │ ├── CmdAdminApplication.java # 应用启动类 │ │ │ ├── common/ # 公共组件 │ │ │ │ ├── config/ # 配置类 │ │ │ │ ├── filter/ # 过滤器 │ │ │ │ ├── response/ # 统一响应格式 │ │ │ │ └── utils/ # 工具类 │ │ │ └── system/ # 系统模块 │ │ │ ├── controller/ # 控制器 │ │ │ ├── entity/ # 实体类 │ │ │ ├── repository/ # 数据访问层 │ │ │ └── service/ # 业务逻辑层 │ │ └── resources/ # 资源文件 │ │ ├── db/ # 数据库脚本 │ │ ├── application.yml # 应用配置 │ │ └── logback-spring.xml # 日志配置 │ └── test/ # 测试代码 ├── ui/ # 前端代码 ├── pom.xml # Maven 配置 └── README.md # 项目说明文档 ``` ## 核心功能 ### 1. 用户认证 - 基于JWT的令牌认证 - 登录成功后将令牌存入Redis - 每次请求验证令牌有效性 - 没权限时返回401状态码 ### 2. 权限管理 - 基于角色的访问控制 - 动态菜单生成 - 细粒度的权限控制 ### 3. 动态路由 - 从后端获取菜单数据 - 前端根据用户权限动态生成路由 - 支持多级菜单嵌套 ### 4. 数据初始化 - 启动时自动执行表结构初始化脚本 - 加载默认数据 - 支持PostgreSQL数据库 ## 配置说明 ### 数据库配置 在 `application.yml` 中配置: ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/cmdadmin username: postgres password: 123456 driver-class-name: org.postgresql.Driver ``` ### Redis配置 ```yaml spring: data: redis: host: localhost port: 6379 password: database: 0 ``` ### JWT配置 ```yaml jwt: secret: cmd_admin_secret_key_2024 # JWT密钥 expiration: 86400000 # 过期时间(毫秒),默认24小时 refresh-expiration: 604800000 # 刷新令牌过期时间(毫秒),默认7天 redis-key-prefix: "jwt:token:" # Redis中存储令牌的前缀 ``` ## 启动步骤 ### 后端启动 1. 确保已安装JDK 21和Maven 2. 确保PostgreSQL和Redis服务已启动 3. 修改 `application.yml` 中的数据库和Redis配置 4. 执行以下命令启动后端服务: ```bash mvn spring-boot:run ``` ### 前端启动 1. 进入ui目录: ```bash cd ui ``` 2. 安装依赖: ```bash npm install ``` 3. 启动前端开发服务器: ```bash npm run dev ``` ## API示例 ### 登录接口 **请求URL**:`/api/auth/login` **请求方法**:`POST` **请求参数**: ```json { "username": "admin", "password": "123456" } ``` **响应示例**: ```json { "code": 200, "message": "登录成功", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "userInfo": { "id": "1", "userName": "admin", "nickName": "管理员", "roles": [], "menus": [] } } } ``` ### 获取用户信息接口 **请求URL**:`/api/auth/info` **请求方法**:`GET` **请求头**: ``` Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ``` **响应示例**: ```json { "code": 200, "message": "操作成功", "data": { "id": "1", "userName": "admin", "nickName": "管理员", "roles": [], "menus": [] } } ``` ## 核心组件说明 ### JWT认证过滤器 JWT认证过滤器用于验证请求中的JWT令牌,确保只有携带有效令牌的请求才能访问受保护的资源。主要功能包括: - 从请求头中提取JWT令牌 - 解析和验证令牌 - 检查令牌是否在Redis中存在 - 验证令牌一致性 - 设置用户认证信息到SecurityContext ### Redis工具类 Redis工具类用于操作Redis,主要功能包括: - 设置缓存 - 获取缓存 - 删除缓存 - 检查缓存是否存在 - 设置缓存过期时间 ### 用户认证服务 用户认证服务负责处理用户登录、登出和获取用户信息等功能,主要包括: - 用户登录验证 - JWT令牌生成 - 令牌存入Redis - 用户信息获取 ## 注意事项 1. 确保JDK版本为21 2. 确保PostgreSQL版本为18 3. 确保Redis服务已启动 4. 首次启动会自动创建表结构和初始数据 5. 前端开发环境需要Node.js 16+和npm 8+ ## 开发规范 1. 代码注释要完整,清晰说明功能和参数 2. 遵循RESTful API设计规范 3. 实体类使用Lombok简化代码 4. 服务层方法要添加事务管理 5. 控制器方法要添加Swagger注解 ## 许可证 MIT License