Files

111 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
本项目仅用于内部学习与研究使用。