# spt-server **Repository Path**: jiangleiapp/spt-server ## Basic Information - **Project Name**: spt-server - **Description**: SPT后台服务 app 管理平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-22 - **Last Updated**: 2025-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **项目架构文档** --- **一、模块架构设计** **1. 系统分层架构** 系统采用分层架构设计,具体结构如下: ``` ┌───────────────┐ │ 业务应用层 │ (cloud / app) └───────┬───────┘ │ ┌──────────────┐ │ 系统服务层 │ (system-* 模块) └───────┬──────┘ │ ┌─────────────┐ │ 基础架构层 │ (common-* 模块) └─────────────┘ ``` **2. 模块功能与组件** **(1) 基础架构层(common)** | 模块名称 | 核心功能 | 关键组件 | |------------------|------------------------|---------------------------------------------| | common-util | 基础工具集 | 注解、常量、异常处理、工具类(邮件、验证码、加密解密)、AOP基类 | 统一异常处理、统一Result、成功失败 | common-model | 领域模型定义 | 基础实体、VO/DTO、枚举类、标准化接口响应模型 | **(2) 系统服务层(system)** | 模块名称 | 核心功能 | 关键能力 | | -------------- | ------------ | ------------------------------------------------------------ | | system-common | 系统基础服务 | 全局配置(数据库、Redis配置、日志配置)、规则引擎、数据监听、切面实现 | | system-iot | IoT通信服务 | MQTT连接管理、消息发布/订阅、QoS保障 | | system-quartz | 任务调度引擎 | 任务监控、失败重试策略 | | system-monitor | 系统监控服务 | 健康检查、性能指标收集、预警通知 | **(3) 业务应用层(service)** | 模块名称 | 服务对象 | 核心特点 | | -------- | ---------- | ---------------------------------------- | | cloud | 管理后台 | 运营数据看板、系统配置管理、RBAC权限体系 | | app | 移动端用户 | 高并发接口、移动端适配、用户终端服务 | **3. 目录结构优化** 项目目录结构如下: ``` Service ├── common-util │ ├── annotation 公共注解(权限、日志) │ ├── constant 通用常量类(系统code、) │ ├── exception 统一异常类 │ ├── util 通用工具类(时间日期处理、加解密校验、邮件工具类、图片验证码工具类等) │ ├── aop 通用AOP类 ├── common-model │ ├── entity 通用model │ ├── vo 通用数据传输类 ├── system-common │ ├── config 公共配置类 包括权限、数据库、Redis、Swagger、过滤器、拦截器等 │ ├── rule 生成规则类 │ ├── listener redis等数据监听类 │ ├── aop AOP切面实现类 ├── system-iot │ ├── mqtt Mqtt连接回调函数(数据收集、设置) │ ├── api (其他通信协议http\tcp) ├── system-quartz │ ├── controller 接口 │ ├── entity 实体类 │ ├── job 任务 (首页数据统计、工单任务) │ ├── service 定时任务service实现 ├── system-monitor │ ├── actuator 健康监控(Spring Boot Actuator集成) │ ├── controller 健康监控端口 │ ├── service 健康监控service层(阈值检测、邮件通知、系统异常通知) ├── system-biz-common │ ├── config 公共配置类 (权限控制、登录验证、统一接口验证、日志监控) │ ├── entity 公共实体类 │ ├── mapper 公共数据访问层 │ ├── service 公共服务层 │ ├── controller 公共接口登录等 ├── cloud │ ├── config 公共配置类 │ ├── entity 实体类 │ ├── mapper 数据访问层 │ ├── service 服务层 │ ├── controller 接口层 ├── app │ ├── config 公共配置类 │ ├── entity 实体类 │ ├── mapper 数据访问层 │ ├── service 服务层 │ ├── controller 接口层 ``` --- **二、技术栈增强说明** | 分类 | 技术选型 | 选型理由 | | -------- | --------------------- | ------------------------------------------ | | 核心框架 | Spring Boot 2.7.x | 快速启动、自动配置、生态丰富 | | ORM | MyBatis | CRUD | | 安全框架 | Spring Security + JWT | 标准化认证流程、无状态Token管理 | | 消息协议 | MQTT 3.1.1 (Paho) | 低功耗、高可靠,适合IoT场景 | | 缓存 | Redis + Redisson | 分布式锁、延迟队列支持,提升高并发场景性能 | | 监控 | Actuator + Micrometer | 集成Prometheus/Grafana,支持多维指标监控 | --- **三、环境配置规范优化** **1. 多环境配置策略** 配置文件示例: ```properties # application-dev.properties spring.profiles.active=dev server.port.cloud=8081 # 开发环境管理后台端口 logging.level.root=DEBUG # 开发环境开启DEBUG日志 # application-prod.properties spring.datasource.url=jdbc:mysql://prod-db-cluster:3306/spt_management?useSSL=true spring.redis.sentinel.master=prod-redis-sentinel # 生产哨兵模式 management.endpoints.web.exposure.include=health,metrics # 仅暴露必要监控端点 ``` **2. 服务端口规划** | 服务模块 | 开发环境端口 | 生产环境端口范围 | 说明 | | -------- | ------------ | ---------------- | ------------------------ | | cloud | 8081 | 8000-8100 | 管理后台服务,隔离部署 | | app | 8080 | 8101-8200 | 用户端服务,支持横向扩展 | **3. 配置最佳实践** - 环境隔离:通过 `spring.profiles.active` 动态切换环境。 - 安全加固:生产环境强制启用SSL,限制监控端点暴露。 - 高可用设计:数据库使用集群模式,Redis采用哨兵部署。 --- **四、扩展性设计** 1. 模块化拆分:各层级通过Maven/Gradle模块化管理,支持独立构建。 2. 接口标准化:`common-model` 定义统一响应模型(如 `Result`)。 3. 监控告警:集成Micrometer上报指标,对接Prometheus + Alertmanager。 4. CI/CD:建议补充Jenkins/GitLab CI流水线配置(如镜像构建、滚动更新)。 --- **持续优化**: 1. 通过分层架构图增强可视化表达。 2. 补充技术选型理由,明确设计意图。 3. 细化目录结构,标注关键文件用途。 4. 增加生产环境安全与高可用配置说明。 5. 标准化表格与代码块格式,提升可读性。 6. 部署自动化构建 7. 数据库设计优化、规范、 可根据实际需求进一步补充部署拓扑图或API设计规范。