You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ECMS/ArchitectureDesign

73 lines
3.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

软件体系结构设计报告(总体设计)
1. 概述
本报告描述ECMS系统的总体架构与关键设计决策严格对应当前代码实现。系统采用前后端分离架构后端Spring Boot提供REST接口前端Vue提供界面与路由导航。
2. 架构概览
- 分层:
- 接口层Controller`com.prj.controller.*`提供REST接口、分页与统一结果包装
- 业务层Service`com.prj.service.*` 与 `impl`,封装业务逻辑与事务;
- 数据访问层Mapper/Repo`com.prj.mapper.*`MyBatis与 `com.prj.repo.*`JPA/Redis
- 领域模型:`com.prj.domain.*`
- 框架与配置:`com.prj.framework.*`、`com.prj.common.*`
- 前端:
- 路由:`src/router/index.js`
- API`src/api/*.js` 通过 `@/utils/request` 调用后端;
- 状态:`src/store`
3. 模块划分与依赖
- 用户与安全:`LoginController`、`CaptchaController`、`framework.security` 与 `framework.web.service.LoginService`
- 部门管理:`DeptController` ↔ `IDeptService` ↔ `DeptMapper.xml` ↔ `Dept`
- 员工管理:`EmployeeController` ↔ `IEmployeeService` ↔ `EmployeeMapper.xml` ↔ `Employee`
- 员工评价:`EmployeeKpiController` ↔ `IEmployeeKpiService` ↔ `EmployeeKpiMapper.xml` ↔ `EmployeeKpi`
- 招人名额:`HireNumController` ↔ `IHireNumService` ↔ `HirenumRepo`/`HireNumMapper.xml` ↔ `HireNum`实体带JPA注解
- 薪资标准:`SalaryLevelController` ↔ `ISalaryLevelService` ↔ `SalaryLevelMapper.xml` ↔ `SalaryLevel`
- 缓存:`RedisCache` 用于验证码;
4. 关键设计
4.1 统一返回与分页
- `AjaxResult` 统一返回格式;
- `BaseController` 提供 `startPage()` 与 `getDataByPage()`,确保各列表接口一致的分页行为。
4.2 事务
- `EmployeeController#edit` 使用 `@Transactional` 保证更新一致性;其他事务由服务层按需控制。
4.3 数据持久化
- 以MyBatis XML为主见 `resources/mapper/*.xml``HireNum` 同时具备JPA实体注解并通过 `HirenumRepo` 使用;
- 领域模型简洁,字段即数据库列的直接映射;
4.4 安全与会话
- 登录流程验证码生成与Redis校验 → `LoginService.login` 签发 `token`
- 前端拦截器自动在请求头附加 `Authorization`401时触发登出与跳转。
4.5 前端结构
- 路由按照模块分组(部门/员工/评价/招聘名额/薪资标准)与首页、登录;
- API封装统一超时、错误码处理与消息提示
5. 接口与数据流
- 前端页面触发 API 请求 → `@/utils/request` 注入 `Authorization` → 后端Controller → Service → Mapper/Repo → 数据库/缓存 → 结果包装返回。
6. 日志与监控
- 使用 `logback.xml` 配置日志生产环境可扩展接入APM或集中式日志当前代码未包含
7. 配置与环境
- 后端配置:`src/main/resources/application.yml`
- 数据源/Redis等依赖通过Spring配置加载当前文件中可见Redis用于验证码
8. 集成测试计划(概要)
- 鉴权链路联调:`/captchaImage` → `/login` → 携带 `Authorization` 调用任一CRUD接口验证401/200分支
- 各模块CRUD链路前端各页面操作对应API验证分页、详情、创建、更新、删除端到端行为
- 事务验证:并发/异常场景下 `PUT /employee` 数据一致性;
9. 部署与分支规范
- 主分支 `main`,目录结构 `doc/` 与 `src/`
- 开发者以个人分支开发,提交合并请求以便指导老师审阅参与度;
- Windows 开发环境,前端、后端分别启动;
10. 演进与扩展性
- 可在Service层引入DTO与校验
- 可在安全层引入基于角色的访问控制;
- 可为各模块添加审计日志与操作记录。