7.8 KiB
7.8 KiB
二、基于SpringBoot框架的高考志愿辅助填报系统-体系结构设计报告
| 文件状态: [ ] 草稿 [ ] 正式发布 [ ] 正在修改 |
文件标识: | |
|---|---|---|
| 当前版本: | ||
| 作 者: | ||
| 完成日期: |
重庆工程学院
Chongqing Institute of Engineering
版本历史
| 版本/状态 | 作者 | 参与者 | 起止日期 | 备注 |
|---|---|---|---|---|
目录
0. 文档介绍
0.1 文档目的
该文档描述了基于SpringBoot框架的高考志愿辅助填报系统的主要功能,阐述了系统的整体构架,包括物理、逻辑结构,并说明了体系结构所采取的设计策略及其所用技术。
0.2 文档范围
适用于基于SpringBoot框架的高考志愿辅助填报系统,详细描述了该系统的设计约束、设计策略、总体结构、和架构设计等。
0.3 读者对象
项目小组各成员
0.4 参考文档
无
0.5 术语与缩写解释
| 缩写、术语 | 解 释 |
|---|---|
1. 系统概述
- 建设背景:高考志愿填报关系到考生的未来发展,但传统填报方式存在信息不对称、效率低、决策难等问题。随着大数据技术的发展,利用智能化手段辅助填报成为趋势。
- 建设目标:构建一个集信息查询、智能推荐、模拟填报于一体的综合服务平台。通过整合权威数据和推荐算法,为考生提供科学、精准的志愿填报建议,提升填报效率和成功率。
2. 设计约束
- 技术约束:
- 后端必须基于 Java SpringBoot 框架。
- 前端采用 Vue.js 框架进行 SPA 开发。
- 数据库使用 MySQL,缓存使用 Redis。
- 环境约束:
- 系统需运行在 Tomcat 9+ 容器中。
- 客户端需支持主流浏览器。
- 时间约束:需在毕业设计规定的时间内(2026年4月前)完成开发和测试。
3. 设计策略
- 分层架构:采用经典的 Controller - Service - DAO 三层架构,实现关注点分离,提高代码的可维护性和可扩展性。
- 前后端分离:前端通过 RESTful API 与后端通信,降低耦合度,提升前端交互体验。
- 高内聚低耦合:各业务模块(如用户、院校、推荐)独立封装,通过接口交互。
- 安全策略:使用 Spring Security 进行认证授权,BCrypt 加密用户密码。
4. 系统总体结构
本系统采用 B/S(Browser/Server)架构,技术栈如下:
- 表现层 (Client): Vue 3, Ant Design Vue, ECharts (数据可视化)。负责页面展示和用户交互。
- API 网关/控制层 (Controller): Spring MVC。接收 HTTP 请求,解析参数,分发任务。
- 业务逻辑层 (Service): SpringBoot 为核心。处理核心业务逻辑,如推荐算法、数据清洗。
- 数据访问层 (DAO): MyBatis-Plus。负责与数据库交互。
- 数据存储层 (Storage): MySQL (关系型数据), Redis (缓存数据)。
graph TD
User[客户端浏览器]
subgraph "接入层"
Gateway[API 网关 / 反向代理]
end
subgraph "应用服务层 (SpringBoot)"
Controller[Web 控制层]
Service[业务逻辑层]
DAO[数据访问层]
Security[安全认证服务]
end
subgraph "数据存储层"
MySQL[(MySQL 关系型数据库)]
Redis[(Redis 缓存数据库)]
end
User <-->|HTTP/REST| Gateway
Gateway <--> Controller
Controller --> Service
Service --> DAO
Service --> Redis
DAO --> MySQL
Controller -.-> Security
5. 子系统结构与功能
可包含顺序图、状态图、组件图等ooa图例,并进行简要介绍。
5.1 用户子系统
- 功能:注册、登录、个人信息管理、密码修改。
- 交互:用户提交表单 -> Controller 验证 -> Service 处理业务 -> DAO 更新 User 表。
sequenceDiagram
participant User as 用户
participant API as API接口层
participant Svc as 业务服务层
participant DB as 数据库
User->>API: 提交注册/登录请求
API->>Svc: 调用业务逻辑
Svc->>Svc: 数据校验 & 密码加密
Svc->>DB: 查询/插入用户数据
DB-->>Svc: 返回结果
Svc-->>API: 返回Token/用户信息
API-->>User: 响应成功/失败
5.2 信息查询子系统
- 功能:院校列表查询、院校详情、专业查询、历年分数线查询。
- 交互:用户筛选条件 -> Controller -> Redis 缓存查询 -> (未命中) MySQL 查询 -> 返回 JSON 数据。
sequenceDiagram
participant User as 用户
participant API as API接口层
participant Redis as Redis缓存
participant DB as 数据库
User->>API: 发起查询请求 (院校/专业)
API->>Redis: 检查缓存
alt 缓存命中
Redis-->>API: 返回缓存数据
else 缓存未命中
API->>DB: 查询数据库
DB-->>API: 返回数据
API->>Redis: 写入缓存
end
API-->>User: 返回JSON数据
5.3 智能推荐子系统
- 功能:基于一分一段表和位次,计算"冲稳保"志愿列表。
- 交互:输入成绩 -> 推荐算法引擎 -> 匹配录取数据 -> 输出推荐列表。
sequenceDiagram
participant User as 用户
participant API as 推荐接口
participant Algo as 推荐算法引擎
participant Data as 基础数据服务
User->>API: 输入高考成绩/位次
API->>Algo: 请求推荐分析
Algo->>Data: 获取同分段位次数据
Algo->>Data: 获取历年院校录取线
Algo->>Algo: 计算录取概率 (冲/稳/保)
Algo-->>API: 返回推荐列表
API-->>User: 展示分层推荐结果
5.4 志愿模拟子系统
- 功能:添加志愿、调整顺序、保存志愿表、风险评估。
- 交互:前端拖拽排序 -> 提交 JSON 结构志愿表 -> 后端校验规则 -> 保存至数据库。
sequenceDiagram
participant User as 用户
participant API as 志愿填报接口
participant Validator as 规则校验器
participant DB as 数据库
User->>API: 提交模拟志愿表
API->>Validator: 校验完整性与规则
alt 校验通过
Validator-->>API: 校验成功
API->>DB: 保存志愿方案
DB-->>API: 保存成功
API-->>User: 提示操作成功
else 校验失败
Validator-->>API: 返回错误信息
API-->>User: 提示调整建议
end
6. 开发环境的配置
| 软件硬件设备名称 | 开发环境标准配置 | 开发环境最低配置 |
|---|---|---|
| CPU | Intel Core i5-11320H 或更高 | Intel Core i3 |
| 内存 | 16GB | 8GB |
| 硬盘 | 512GB SSD | 256GB SSD |
| 操作系统 | Windows 10/11 | Windows 7 |
| 开发工具 | IntelliJ IDEA, VS Code | Eclipse |
7. 测试环境的配置
| 软件硬件设备名称 | 测试环境标准配置 | 测试环境最低配置 |
|---|---|---|
| CPU | Intel Core i5 | Intel Core i3 |
| 内存 | 8GB | 4GB |
| 硬盘 | 256GB | 128GB |
| 浏览器 | Chrome 80+, Edge | Chrome 60+ |
8. 运行环境的配置
| 软件硬件设备名称 | 运行环境标准配置 | 运行环境最低配置 |
|---|---|---|
| CPU | 2核 4线程 | 1核 |
| 内存 | 4GB | 2GB |
| 硬盘 | 40GB | 20GB |
| 软件依赖 | JDK 1.8, MySQL 5.7+, Redis | JDK 1.8, MySQL 5.7 |