Files
xlhlw/任务/高考志愿辅助填报系统-体系结构设计报告.md

246 lines
7.8 KiB
Markdown
Raw Permalink Normal View History

2026-02-05 01:24:42 +08:00
# 二、基于SpringBoot框架的高考志愿辅助填报系统-体系结构设计报告
|文件状态:<br>[ ] 草稿<br>[ ] 正式发布<br>[ ] 正在修改|文件标识:||
|---|---|---|
||当前版本:||
||作 者:||
||完成日期:||
重庆工程学院<br>Chongqing Institute of Engineering
## 版本历史
|版本/状态|作者|参与者|起止日期|备注|
|---|---|---|---|---|
||||||
||||||
||||||
## 目录
1. [文档介绍](#0-文档介绍)
2. [系统概述](#1-系统概述)
3. [设计约束](#2-设计约束)
4. [设计策略](#3-设计策略)
5. [系统总体结构](#4-系统总体结构)
6. [子系统结构与功能](#5-子系统结构与功能)
7. [开发环境的配置](#6-开发环境的配置)
8. [测试环境的配置](#7-测试环境的配置)
9. [运行环境的配置](#8-运行环境的配置)
10. [其它](#9-其它)
## 0. 文档介绍
## 0.1 文档目的
该文档描述了基于SpringBoot框架的高考志愿辅助填报系统的主要功能阐述了系统的整体构架包括物理、逻辑结构并说明了体系结构所采取的设计策略及其所用技术。
## 0.2 文档范围
适用于基于SpringBoot框架的高考志愿辅助填报系统详细描述了该系统的设计约束、设计策略、总体结构、和架构设计等。
## 0.3 读者对象
项目小组各成员
## 0.4 参考文档
## 0.5 术语与缩写解释
|缩写、术语|解 释|
|---|---|
|||
|||
|||
|||
|||
## 1. 系统概述
1. **建设背景**:高考志愿填报关系到考生的未来发展,但传统填报方式存在信息不对称、效率低、决策难等问题。随着大数据技术的发展,利用智能化手段辅助填报成为趋势。
2. **建设目标**:构建一个集信息查询、智能推荐、模拟填报于一体的综合服务平台。通过整合权威数据和推荐算法,为考生提供科学、精准的志愿填报建议,提升填报效率和成功率。
## 2. 设计约束
1. **技术约束**
- 后端必须基于 Java SpringBoot 框架。
- 前端采用 Vue.js 框架进行 SPA 开发。
- 数据库使用 MySQL缓存使用 Redis。
2. **环境约束**
- 系统需运行在 Tomcat 9+ 容器中。
- 客户端需支持主流浏览器。
3. **时间约束**需在毕业设计规定的时间内2026年4月前完成开发和测试。
## 3. 设计策略
1. **分层架构**:采用经典的 Controller - Service - DAO 三层架构,实现关注点分离,提高代码的可维护性和可扩展性。
2. **前后端分离**:前端通过 RESTful API 与后端通信,降低耦合度,提升前端交互体验。
3. **高内聚低耦合**:各业务模块(如用户、院校、推荐)独立封装,通过接口交互。
4. **安全策略**:使用 Spring Security 进行认证授权BCrypt 加密用户密码。
## 4. 系统总体结构
本系统采用 B/SBrowser/Server架构技术栈如下
- **表现层 (Client)**: Vue 3, Ant Design Vue, ECharts (数据可视化)。负责页面展示和用户交互。
- **API 网关/控制层 (Controller)**: Spring MVC。接收 HTTP 请求,解析参数,分发任务。
- **业务逻辑层 (Service)**: SpringBoot 为核心。处理核心业务逻辑,如推荐算法、数据清洗。
- **数据访问层 (DAO)**: MyBatis-Plus。负责与数据库交互。
- **数据存储层 (Storage)**: MySQL (关系型数据), Redis (缓存数据)。
```mermaid
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 表。
```mermaid
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 数据。
```mermaid
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 智能推荐子系统
- **功能**:基于一分一段表和位次,计算"冲稳保"志愿列表。
- **交互**:输入成绩 -> 推荐算法引擎 -> 匹配录取数据 -> 输出推荐列表。
```mermaid
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 结构志愿表 -> 后端校验规则 -> 保存至数据库。
```mermaid
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|
# 9. 其它