- 项目名称: 智慧门禁控制系统(AccessControl)
- 项目版本: 1.0-SNAPSHOT
- 开发者: 畅哥不唱歌
- 开发时间: 2025年9月
- 服务端口: 666
- API文档: http://localhost:666/doc.html
- 数据库: MySQL 8.0 (access_control)
- 技术类型: Spring Boot 毕业设计项目
这是一个基于Spring Boot 3.3.0和Java 17开发的现代化智能访问控制系统,集成了人脸识别和车牌识别等AI技术,实现了人员门禁管理、车辆停车管理、访客登记审批、智能收费等完整的访问控制业务。
系统适用于小区、园区、企业、学校等多种场景,能够有效提升安全管理水平,实现智能化无感通行。
该项目暂时不提供前端代码和模型,等待后续答辩完成将提供前端代码和论文
- 👤 用户信息管理(注册、登录、信息维护)
- 📸 人脸识别门禁通行
- 🔍 人员进出记录追踪
- 📊 人员流量统计分析
- 🚗 固定车牌管理(内部车辆)
🅿️ 临时车辆管理(访客车辆)- 🔍 车牌识别自动登记
- 📍 VIP停车位管理
- 💰 智能停车收费
- 📝 访客预约登记
- ✅ 多级审批流程
- 🎫 临时授权管理
- 📋 访客记录查询
- 💵 灵活的收费策略(临时/包月/包年)
- 🧮 自动计费功能
- 📊 收费记录管理
- 📈 财务统计报表
- 👨💼 管理员权限管理
- 🚪 门禁点位配置
🅿️ 停车场管理- ⚙️ 系统参数设置
- 🎨 动态路由权限
- 📊 实时出入统计
- 📈 月度流量分析
- 💰 收入统计报表
- 📉 趋势图表展示
- 人脸识别: 基于深度学习的人脸特征提取和比对,识别准确率高
- 车牌识别: 自动识别多种车牌类型,支持复杂场景
- 智能对比: 实时对比人脸/车牌信息,自动登记进出记录
- Sa-Token: 轻量级权限认证框架
- 动态路由: 根据用户权限动态生成菜单
- 多端登录: 支持多设备同时在线
- Token管理: 30天有效期,自动刷新
- Spring Boot 3.3.0: 最新稳定版本
- Java 17: 现代化Java特性
- MyBatis-Plus: 增强型ORM框架
- Redis: 分布式缓存和会话管理
- Knife4j: 自动生成API文档
- 分层架构: Controller-Service-Mapper三层分离
- 统一响应: 标准化的响应格式
- 异常处理: 全局统一异常拦截
- 参数校验: 分组校验机制
- 自动填充: 时间和操作人自动记录
| 技术 | 版本 | 说明 |
|---|---|---|
| Spring Boot | 3.3.0 | 核心框架 |
| Java | 17 | 编程语言 |
| MyBatis-Plus | 3.5.5 | ORM框架 |
| Sa-Token | 1.44.0 | 权限认证 |
| Redis | - | 缓存中间件 |
| MySQL | 8.0.30 | 数据库 |
| Knife4j | 4.5.0 | API文档 |
| Hutool | 5.8.22 | 工具类库 |
| EasyExcel | 3.3.2 | Excel处理 |
| Lombok | - | 代码简化 |
| 技术 | 版本 | 说明 |
|---|---|---|
| SmartJavaAI | 1.0.23 | AI框架 |
| PyTorch | 2.5.1 | 深度学习 |
| OpenCV | 4.9.0 | 图像处理 |
| JavaCV | 1.5.10 | 视频处理 |
| DJL | - | 深度学习库 |
- admin: 管理员表
- user: 用户表
- user_car: 用户车辆表
- user_face: 人脸进出记录表
- gate: 门禁表
- vip_parking_lot: VIP停车场表
- visitor_registration_form: 访客登记表
- charge: 收费配置表
- tariff: 收费标准表
- fee_records: 缴费记录表
- face_record: 车辆记录表
- unit: 单位/地址表
- settings: 系统设置表
- page_router: 页面路由表
- routing_role: 路由角色关系表
用户靠近门禁 → 摄像头捕获人脸 →
AI识别人脸特征 → 与人脸库比对 →
验证通过/拒绝 → 记录进出信息 →
开启/关闭门禁
车辆进入停车场 → 摄像头拍摄车牌 →
AI识别车牌号码 → 判断车辆类型(固定/临时) →
记录入场时间 → 分配停车位 →
车辆离场 → 计算停车时长 →
自动计费 → 缴费出场 → 记录出场时间
用户提交访客申请 → 填写访客信息 →
管理员审批 → 审批通过/拒绝 →
生成临时授权 → 访客凭授权进入 →
记录访客进出 → 访问结束 → 授权失效
POST /user/login
Content-Type: application/json
{
"username": "user001",
"password": "123456"
}响应:
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1,
"username": "user001",
"name": "张三",
"phone": "13800138000",
"token": "xxx-xxx-xxx"
}
}POST /user/approval
Content-Type: application/json
token: your-token
{
"gateId": 1,
"faceImage": "http://localhost:666/static/file/images/face_001.jpg"
}响应:
{
"code": 200,
"msg": "识别成功",
"data": {
"userId": 1,
"userName": "张三",
"similarity": 0.95,
"allowPass": true,
"recordTime": "2025-10-10 10:30:00"
}
}POST /vipParkingLot/approval
Content-Type: application/json
token: your-token
{
"parkingLotId": 1,
"plateImage": "http://localhost:666/static/file/images/plate_001.jpg"
}响应:
{
"code": 200,
"msg": "识别成功",
"data": {
"plateNumber": "京A12345",
"carType": "固定车辆",
"ownerName": "张三",
"entryTime": "2025-10-10 08:00:00",
"parkingDuration": "2小时30分",
"fee": 0.00
}
}- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Redis 5.0+
# application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/access_control
username: root
password: rootspring:
data:
redis:
host: 127.0.0.1
port: 6379# 方式1: IDE运行
运行 Main.java 的 main 方法
# 方式2: Maven命令
mvn clean package
java -jar target/accessControl-1.0-SNAPSHOT.jar
# 方式3: Maven插件
mvn spring-boot:run- API文档: http://localhost:666/doc.html
- 系统端口: 666
accessControl/
├── src/main/java/com/he/my/accessControl/
│ ├── ai/ # AI识别模块
│ │ ├── config/ # AI配置
│ │ ├── FaceRecUtil.java # 人脸识别工具
│ │ └── PlateRecUtil.java # 车牌识别工具
│ ├── common/ # 通用模块
│ │ └── enums/ # 枚举类
│ ├── config/ # 配置类
│ │ ├── SaTokenConfigure.java # Sa-Token配置
│ │ ├── MyBatisConfig.java # MyBatis配置
│ │ ├── RedisConfig.java # Redis配置
│ │ ├── ResponseData.java # 统一响应
│ │ └── OperateException.java # 自定义异常
│ ├── controller/ # 控制器层
│ │ ├── AdminController.java
│ │ ├── UserController.java
│ │ ├── UserCarController.java
│ │ ├── GateController.java
│ │ └── ...
│ ├── entity/ # 实体类
│ ├── mapper/ # Mapper接口
│ ├── pojo/ # DTO/VO对象
│ ├── service/ # 服务层
│ │ └── impl/ # 服务实现
│ ├── util/ # 工具类
│ └── Main.java # 启动类
├── src/main/resources/
│ ├── application.yml # 配置文件
│ └── com/he/my/accessControl/mapper/ # Mapper XML
├── pom.xml # Maven配置
└── README.md # 项目说明
- Token认证: 所有接口需要携带有效Token
- 权限控制: 基于角色的访问控制
- 参数校验: 严格的输入参数验证
- SQL防注入: MyBatis预编译防注入
- 异常拦截: 统一的异常处理机制
- 密码加密: 用户密码加密存储
- Token过期: 自动检测Token有效性
- 人脸识别速度: < 500ms
- 车牌识别速度: < 300ms
- 接口响应时间: < 200ms (平均)
- 并发支持: 1000+ QPS
- 识别准确率:
- 人脸识别: > 95%
- 车牌识别: > 98%
- 开发者: 畅哥不唱歌
- 项目类型: 毕业设计 / 企业级应用
- 开发日期: 2025年9月
本项目提供完整的技术文档:
- API接口文档.md - 详细的接口说明文档(包含16个模块,80+个接口)
- 项目简介.md - 项目概述和快速入门(本文档)
✅ 技术栈新颖(Spring Boot 3 + Java 17)
✅ 功能完整(16个功能模块)
✅ 技术难度适中(AI集成、权限管理)
✅ 文档齐全(接口文档、亮点说明)
✅ 代码规范(工程化标准)
✅ 小区门禁系统
✅ 企业园区管理
✅ 学校访客管理
✅ 停车场管理系统
✅ 智慧社区建设
注意: 本系统集成了AI识别功能,需要确保服务器有足够的计算资源。首次启动时会加载AI模型,可能需要较长时间,请耐心等待。