3.5 KiB
3.5 KiB
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. 初始化数据库
mysql -u root -p < sql/init.sql
脚本会自动创建 freedom_db 数据库、全部业务表并写入基础数据(默认管理员账号 admin / 123456)。
2. 修改数据库配置
编辑 src/main/resources/application.yml:
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. 启动服务
# 开发运行
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
本项目仅用于内部学习与研究使用。