111 lines
3.5 KiB
Markdown
111 lines
3.5 KiB
Markdown
# Freedom Admin
|
||
|
||
基于 **Spring Boot 2.7.10** 的后台管理系统后端服务,提供用户、角色、部门、权限等基础管理能力。
|
||
|
||
## 技术栈
|
||
|
||
| 分类 | 技术 |
|
||
| ---- | ---- |
|
||
| 核心框架 | Spring Boot 2.7.10 |
|
||
| 安全框架 | Spring Security 3.3.2 + JWT(jjwt 0.9.1) |
|
||
| ORM | MyBatis-Plus 3.5.7 + PageHelper 2.1.0 |
|
||
| 模板引擎 | Thymeleaf(登录页等) |
|
||
| 数据库 | MySQL 8.0(utf8mb4) |
|
||
| 连接池 | HikariCP |
|
||
| 其他 | Lombok、Fastjson、Guava、Spring Mail |
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
freedom-admin
|
||
├── sql/
|
||
│ └── init.sql # 数据库初始化脚本(建库建表 + 基础数据)
|
||
├── src/main/java/com/freedom/admin/
|
||
│ ├── AdminApplication.java # 启动类
|
||
│ ├── base/ # 基础类与通用返回结构
|
||
│ ├── common/ # 通用常量 / 工具
|
||
│ ├── config/ # Spring Security、JWT 等配置
|
||
│ ├── controller/ # 控制器层
|
||
│ ├── entity/ # 实体类
|
||
│ ├── mapper/ # MyBatis-Plus Mapper
|
||
│ ├── service/ # 业务层
|
||
│ └── util/ # 工具类
|
||
└── src/main/resources/
|
||
├── mapper/ # MyBatis XML 映射文件
|
||
├── logback-spring.xml # 日志配置(控制台 UTF-8)
|
||
└── application.yml # 应用配置
|
||
```
|
||
|
||
## 数据模型
|
||
|
||
| 表 | 说明 |
|
||
| -- | ---- |
|
||
| `t_sys_user` | 用户表(BCRYPT 密码加密) |
|
||
| `t_sys_dept` | 部门表(支持树形层级) |
|
||
| `t_sys_role` | 角色表 |
|
||
| `t_sys_permission` | 权限 / 菜单表(动态路由数据源) |
|
||
| `t_sys_user_role` | 用户-角色关联表 |
|
||
| `t_sys_role_permission` | 角色-权限关联表 |
|
||
|
||
## 功能特性
|
||
|
||
- **用户管理**:用户注册、登录、JWT 认证、信息维护
|
||
- **角色管理**:角色 CRUD、角色-权限绑定
|
||
- **部门管理**:树形部门结构
|
||
- **权限管理**:菜单 / 权限点维护,驱动前端动态路由
|
||
- **邮件服务**:基于 Spring Mail 的邮件发送能力
|
||
- **系统特性**:统一异常处理、PageHelper 分页、逻辑删除、接口权限控制
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- JDK 1.8+
|
||
- Maven 3.6.3+
|
||
- MySQL 8.0+
|
||
|
||
### 1. 初始化数据库
|
||
|
||
```bash
|
||
mysql -u root -p < sql/init.sql
|
||
```
|
||
|
||
脚本会自动创建 `freedom_db` 数据库、全部业务表并写入基础数据(默认管理员账号 `admin` / `123456`)。
|
||
|
||
### 2. 修改数据库配置
|
||
|
||
编辑 `src/main/resources/application.yml`:
|
||
|
||
```yaml
|
||
spring:
|
||
datasource:
|
||
url: jdbc:mysql://localhost:3306/freedom_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
|
||
username: root
|
||
password: your_password
|
||
```
|
||
|
||
### 3. 启动服务
|
||
|
||
```bash
|
||
# 开发运行
|
||
mvn spring-boot:run
|
||
|
||
# 或打包运行
|
||
mvn clean package -DskipTests
|
||
java -jar target/freedom-admin-1.0.1.jar
|
||
```
|
||
|
||
> Windows 下可直接使用 `start.bat` 启动(已自动设置控制台 UTF-8 编码,避免中文日志乱码)。
|
||
|
||
启动后服务地址:`http://localhost:8800`
|
||
|
||
## 注意事项
|
||
|
||
- JWT 密钥与过期时间在 `application.yml` 的 `jwt` 节点配置,生产环境请务必更换密钥。
|
||
- 邮件授权码请使用邮箱服务商提供的 SMTP 授权码,勿直接使用登录密码。
|
||
- 表 / 列中文注释建议使用 UTF-8 编码执行脚本,避免乱码入库。
|
||
|
||
## License
|
||
|
||
本项目仅用于内部学习与研究使用。
|