246 lines
7.8 KiB
Markdown
246 lines
7.8 KiB
Markdown
# 二、基于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/S(Browser/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. 其它
|