# WindDataTrans 项目说明书 ## 项目概述 WindDataTrans 是一个基于 Spring Boot 2.7.18 的数据转换服务应用,主要用于处理风电场相关数据的采集、转换和传输。项目采用 Maven 构建,使用 Java 8 开发,集成了多种数据处理和存储技术。 ## 技术栈 ### 核心框架 - Spring Boot 2.7.18 - Spring Web - Spring Scheduling ### 数据存储与访问 - MySQL 数据库 (mysql-connector-java 8.0.28) - Redis 缓存 (spring-boot-starter-data-redis-reactive) - MyBatis-Plus 3.5.7 (ORM 框架) - Druid 1.2.25 (数据库连接池) ### 数据处理 - Hutool-all 5.7.15 (Java 工具类库) - FastJSON 2.0.26 (JSON 处理) - Forest 1.5.36 (HTTP 客户端框架) ### 文档与工具 - Knife4j 3.0.3 (API 文档) - Lombok 1.18.30 (Java 注解工具) - Velocity 1.7 (模板引擎) ## 项目结构 ``` WindDataTrans/ ├── src/main/java/com/dskj/znzn/transData/ │ ├── Application.java # 应用入口类 │ ├── common/ # 通用组件 │ │ ├── ThreadLocalUser.java │ │ ├── annotaions/ # 自定义注解 │ │ ├── base/ # 基础类 │ │ ├── conf/ # 配置类 │ │ ├── exception/ # 异常处理 │ │ ├── filter/ # 过滤器 │ │ ├── mybatis/ # MyBatis 扩展 │ │ ├── service/ # 通用服务 │ │ └── utils/ # 工具类 │ ├── crontab/ # 定时任务 │ │ └── UpdadePlatformData.java # 平台数据更新任务 │ ├── generate/ # 代码生成 │ │ └── CodeGenerateMain.java # 代码生成入口 │ └── web/ # Web 模块 │ ├── common/ # Web 通用组件 │ ├── dataTransfer/ # 数据转换模块 │ ├── laserData/ # 激光数据模块 │ ├── transConf/ # 传输配置模块 │ └── waveData/ # 波形数据模块 └── src/main/resources/ ├── application.yml # 主配置文件 ├── application-*.yml # 环境特定配置 ├── logback-*.xml # 日志配置 ├── mapper/ # MyBatis 映射文件 └── static/ # 静态资源 ``` ## 配置说明 ### 主要配置文件 - `application.yml`: 主配置文件,包含服务器端口(9001)、数据源配置等 - 环境特定配置: application-dev.yml(开发)、application-prod.yml(生产)等 - 日志配置: logback-dev.xml(开发)、logback-prod.xml(生产) ### 数据库配置 默认使用 Druid 连接池,配置包含: - 初始连接数: 30 - 最大活跃连接数: 300 - 最大等待时间: 600000ms - 最小空闲连接数: 20 ## 功能模块 ### 1. 数据采集与传输 - `web/dataTransfer`: 数据转换接口 - `web/waveData`: 波形数据接口 - `web/laserData`: 激光数据接口 ### 2. 定时任务 - `crontab/UpdadePlatformData.java`: 平台数据定时更新任务 ### 3. 配置管理 - `web/transConf`: 传输配置管理 ### 4. 代码生成 - `generate/CodeGenerateMain.java`: 代码生成工具 ## 启动说明 ### 环境要求 - JDK 8 - Maven 3.6+ - MySQL 5.7+ - Redis (可选) ### 启动步骤 1. 配置数据库连接信息 2. 选择激活环境: 在 application.yml 中设置 spring.profiles.active 3. 执行 Maven 命令: `mvn spring-boot:run` 4. 访问 API 文档: http://localhost:9001/doc.html (Knife4j) ## 开发指南 ### 代码规范 - 遵循 Java 编码规范 - 使用 Lombok 注解减少样板代码 - 异常统一处理 ### 模块开发 1. 在 web 目录下创建新的业务模块 2. 使用 CodeGenerateMain 生成基础代码 3. 实现业务逻辑 4. 添加单元测试