# 二、基于SpringBoot框架的高考志愿辅助填报系统-体系结构设计报告 |文件状态:
[ ] 草稿
[ ] 正式发布
[ ] 正在修改|文件标识:|| |---|---|---| ||当前版本:|| ||作 者:|| ||完成日期:|| 重庆工程学院
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. 其它