Files

3.5 KiB
Raw Permalink Blame History

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

本项目仅用于内部学习与研究使用。