- 重构前端导入和组件结构,优化代码组织 - 添加Java后端基础框架和API实现 - 修复类型定义和接口兼容性问题 - 新增测试页面和工具函数 - 优化国际化支持和错误处理 - 更新依赖配置和构建脚本 新增Java后端模块: - 实现基础认证、订单、支付等服务 - 添加Swagger API文档支持 - 配置数据库连接和缓存 - 实现国际化消息处理 - 添加安全过滤器和限流控制
9.6 KiB
9.6 KiB
架构设计
1. 架构概述
Crawlful Hub 采用分层架构设计,确保系统的可维护性、可扩展性和可测试性。系统分为控制器层、服务层、仓库层和模型层,各层之间通过依赖注入进行解耦,实现了高内聚、低耦合的设计目标。
2. 分层架构
2.1 控制器层(Controller)
控制器层负责处理 HTTP 请求,包括请求参数的验证、调用服务层的方法、处理异常和返回响应。控制器层不包含业务逻辑,只负责请求和响应的处理。
主要职责:
- 接收 HTTP 请求
- 验证请求参数
- 调用服务层处理业务逻辑
- 处理异常
- 返回 HTTP 响应
核心控制器:
AuthController:处理认证相关的请求UserController:处理用户管理相关的请求ProductController:处理商品管理相关的请求OrderController:处理订单管理相关的请求PaymentController:处理支付管理相关的请求LogisticsController:处理物流管理相关的请求MonitoringController:处理监控相关的请求AlertController:处理告警相关的请求AuditController:处理审计相关的请求ConfigController:处理配置相关的请求DataController:处理数据相关的请求ReportController:处理报表相关的请求
2.2 服务层(Service)
服务层是业务逻辑的核心,负责实现业务规则、处理业务流程和协调多个仓库的操作。服务层通过依赖注入使用仓库层的方法,实现业务逻辑的封装和复用。
主要职责:
- 实现业务逻辑
- 处理业务流程
- 协调多个仓库的操作
- 管理事务
- 处理异常
核心服务:
AuthService:处理认证相关的业务逻辑UserService:处理用户管理相关的业务逻辑ProductService:处理商品管理相关的业务逻辑OrderService:处理订单管理相关的业务逻辑PaymentService:处理支付管理相关的业务逻辑LogisticsService:处理物流管理相关的业务逻辑MonitoringService:处理监控相关的业务逻辑AlertService:处理告警相关的业务逻辑AuditService:处理审计相关的业务逻辑ConfigService:处理配置相关的业务逻辑DataService:处理数据相关的业务逻辑ReportService:处理报表相关的业务逻辑
2.3 仓库层(Repository)
仓库层负责数据访问,包括数据库的 CRUD 操作。仓库层通过 Spring Data JPA 实现,提供了简洁的数据库操作接口。
主要职责:
- 实现数据库的 CRUD 操作
- 提供查询方法
- 管理数据库事务
核心仓库:
UserRepository:处理用户数据的访问ProductRepository:处理商品数据的访问OrderRepository:处理订单数据的访问PaymentRepository:处理支付数据的访问LogisticsRepository:处理物流数据的访问AlertRepository:处理告警数据的访问AuditRepository:处理审计数据的访问ConfigRepository:处理配置数据的访问
2.4 模型层(Model)
模型层定义了数据结构,包括实体类和 DTO(数据传输对象)。实体类对应数据库表,DTO 用于在不同层之间传递数据。
主要职责:
- 定义数据结构
- 映射数据库表
- 提供数据访问方法
核心模型:
User:用户模型Product:商品模型Order:订单模型Payment:支付模型Logistics:物流模型Alert:告警模型Audit:审计模型Config:配置模型
3. 核心流程
3.1 用户认证流程
- 用户注册:用户提交注册信息,
AuthController调用AuthService的register方法,验证输入数据,创建用户并返回用户信息。 - 用户登录:用户提交登录信息,
AuthController调用AuthService的login方法,验证用户名和密码,生成 JWT 令牌并返回。 - 令牌验证:请求携带 JWT 令牌,
SecurityConfig验证令牌的有效性,确保用户已认证。
3.2 商品管理流程
- 创建商品:用户提交商品信息,
ProductController调用ProductService的create方法,验证输入数据,创建商品并返回商品信息。 - 查询商品:用户请求商品列表,
ProductController调用ProductService的getAll方法,根据过滤条件查询商品并返回。 - 更新商品:用户提交商品更新信息,
ProductController调用ProductService的update方法,验证输入数据,更新商品并返回更新后的商品信息。 - 删除商品:用户请求删除商品,
ProductController调用ProductService的delete方法,删除商品并返回成功信息。
3.3 订单管理流程
- 创建订单:用户提交订单信息,
OrderController调用OrderService的createOrder方法,验证输入数据,创建订单并返回订单信息。 - 查询订单:用户请求订单列表,
OrderController调用OrderService的getOrders方法,根据过滤条件查询订单并返回。 - 更新订单:用户提交订单更新信息,
OrderController调用OrderService的updateOrder方法,验证输入数据,更新订单并返回更新后的订单信息。 - 订单状态流转:用户请求更新订单状态,
OrderController调用OrderService的transitionOrderStatus方法,更新订单状态并返回成功信息。
3.4 支付管理流程
- 创建支付:用户提交支付信息,
PaymentController调用PaymentService的create方法,验证输入数据,创建支付并返回支付信息。 - 查询支付:用户请求支付列表,
PaymentController调用PaymentService的getAll方法,根据过滤条件查询支付并返回。 - 更新支付:用户提交支付更新信息,
PaymentController调用PaymentService的update方法,验证输入数据,更新支付并返回更新后的支付信息。
3.5 物流管理流程
- 创建物流:用户提交物流信息,
LogisticsController调用LogisticsService的create方法,验证输入数据,创建物流并返回物流信息。 - 查询物流:用户请求物流列表,
LogisticsController调用LogisticsService的getAll方法,根据过滤条件查询物流并返回。 - 更新物流:用户提交物流更新信息,
LogisticsController调用LogisticsService的update方法,验证输入数据,更新物流并返回更新后的物流信息。
3.6 监控与告警流程
- 系统健康检查:用户请求系统健康状态,
MonitoringController调用MonitoringService的getSystemHealth方法,返回系统健康状态。 - 性能指标获取:用户请求系统性能指标,
MonitoringController调用MonitoringService的getPerformanceMetrics方法,返回系统性能指标。 - 告警创建:系统检测到异常,
AlertService创建告警并存储到数据库。 - 告警处理:用户请求处理告警,
AlertController调用AlertService的resolveAlert方法,更新告警状态为已解决。
4. 技术实现细节
4.1 数据库设计
- 用户表:存储用户信息,包括用户名、密码、邮箱、角色等。
- 商品表:存储商品信息,包括标题、描述、价格、数量等。
- 订单表:存储订单信息,包括订单号、状态、总金额等。
- 支付表:存储支付信息,包括支付方式、金额、状态等。
- 物流表:存储物流信息,包括物流方式、跟踪号、状态等。
- 告警表:存储告警信息,包括告警类型、严重程度、状态等。
- 审计表:存储审计日志,包括操作类型、资源类型、操作人等。
- 配置表:存储系统配置,包括配置键、配置值、配置类型等。
4.2 缓存实现
使用 Redis 作为缓存存储,缓存高频访问的数据,如用户信息、商品信息等,提高系统的响应速度。
4.3 安全实现
- JWT 认证:使用 JWT 进行身份验证,确保 API 安全。
- CSRF 保护:实现 CSRF 令牌验证,防止 CSRF 攻击。
- 速率限制:限制 API 请求频率,防止恶意请求。
- 密码加密:使用 BCrypt 加密用户密码,确保密码安全。
4.4 国际化实现
使用 Spring 的国际化支持,提供英文和中文的资源文件,根据请求的 Accept-Language 头自动切换语言。
4.5 监控与告警实现
- 系统健康检查:实现系统健康状态检查,包括数据库连接、缓存状态等。
- 性能指标监控:实现系统性能指标监控,包括响应时间、请求次数等。
- 告警管理:实现告警的创建、查询、更新和处理,及时发现和处理系统异常。
5. 扩展性设计
- 模块化设计:系统采用模块化设计,各模块之间通过接口进行通信,便于功能扩展和代码维护。
- 依赖注入:使用 Spring 的依赖注入,实现组件的解耦,便于单元测试和功能扩展。
- 配置化:系统的配置通过 application.yml 文件进行配置,便于环境切换和参数调整。
- 插件化:系统支持插件化开发,可以通过插件扩展系统功能。
6. 总结
Crawlful Hub 采用分层架构设计,实现了高内聚、低耦合的系统结构。系统通过控制器层、服务层、仓库层和模型层的划分,实现了业务逻辑的封装和复用,提高了系统的可维护性、可扩展性和可测试性。同时,系统通过缓存、安全、国际化等技术的应用,提高了系统的性能和用户体验。