# springBootDemo **Repository Path**: jiuseng/springBootDemo ## Basic Information - **Project Name**: springBootDemo - **Description**: demo库,自己学习使用 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-09 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBootDemo 开发文档 ## 项目简介 这是一个基于 Spring Boot 的综合演示项目,包含多个模块,如音频服务、WebSocket、Netty、Hadoop、Redis、RabbitMQ 等。该项目旨在展示如何使用 Spring Boot 框架集成各种技术,包括网络通信、消息队列、数据库、搜索、定时任务等。 ## 模块概览 - **NAudioServerCentos / NAudioServerWindows**: 音频服务器模块,用于播放音频文件、TTS、实时寻呼、监听等功能。 - **hk-server**: 海康威视摄像头 SDK 集成模块,用于视频监控、设备控制等。 - **webSocket**: WebSocket 通信模块,支持实时通信。 - **netty**: 使用 Netty 框架实现 TCP/UDP 通信。 - **activiti**: 工作流模块,使用 Activiti 实现流程管理。 - **rabbitmq**: RabbitMQ 消息队列模块,用于异步消息处理。 - **redis**: Redis 缓存模块,用于缓存数据和消息订阅。 - **elasticSearch**: 使用 Elasticsearch 实现数据搜索。 - **mybatisPlus**: MyBatis Plus 模块,用于数据库操作。 - **scheduleTask**: 定时任务模块,使用 Quartz 实现任务调度。 - **pageDemo**: 页面展示模块,使用 Thymeleaf 模板引擎。 - **influxdb**: InfluxDB 时间序列数据库集成模块。 - **binlog4j-demo**: MySQL Binlog 解析模块,用于数据库变更监听。 - **cacal_demo**: Canal 模块,用于 MySQL 数据库增量日志解析。 - **javaDemo**: Java 示例代码,包含算法、设计模式、Groovy、Maven、多线程等示例。 - **pdf**: PDF 处理模块,用于 PDF 文件操作。 - **dynamicAnalysis**: 动态分析模块,用于 IP 地址分析和邮件发送。 ## 快速开始 ### 环境要求 - JDK 1.8 或更高版本 - Maven 3.x - Spring Boot 2.x - 各模块依赖的第三方库(如 Netty、Redis、RabbitMQ、Elasticsearch 等) ### 构建与运行 1. **克隆项目** ```bash git clone https://gitee.com/jiuseng/springBootDemo_dev.git cd springBootDemo_dev ``` 2. **构建项目** ```bash mvn clean install ``` 3. **运行模块** 每个模块都有自己的启动类(如 `NAudioApplication.java`),可以通过以下方式运行: ```bash mvn spring-boot:run -pl NAudioServerCentos -am ``` 或者直接运行主类: ```bash java -jar NAudioServerCentos/target/NAudioServerCentos.jar ``` ## 使用说明 ### 音频服务(NAudioServer) - **播放音频文件**: `PlayAudioFileTest()` - **播放 TTS**: `PlayTTSTest()` - **实时寻呼**: `PagingTest()` - **监听音频**: `MonitorTest()` - **推流播放**: `PcmStreamPlayTest()`, `Mp3StreamPlayTest()`, `ImaAdpcmStreamPlayTest()` ### 海康威视摄像头服务(hk-server) - **登录摄像头**: `login()` - **获取通道信息**: `getChannelInfo()` - **查找历史视频**: `findHistoryVideoFileV40()` - **下载历史视频**: `downloadHistoryVideoByFileName()` ### WebSocket 通信(webSocket) - **建立 WebSocket 连接**: `consum()` 方法用于接收消息。 - **定时任务**: `@Scheduled` 注解用于定时任务。 ### Netty 通信(netty) - **TCP 服务**: `TcpServer.create()` 启动 TCP 服务。 - **UDP 服务**: `UdpServer.create()` 启动 UDP 服务。 - **WebSocket 服务**: `WebSocketServer.create()` 启动 WebSocket 服务。 ### 数据库操作(mybatisPlus) - **CRUD 操作**: `UserController` 提供了基本的增删改查接口。 - **SQL 注入器**: `SqlOnjector` 实现了自定义 SQL 拦截。 ### 消息队列(rabbitmq) - **消息发布**: `RabbitController.convertAndSend()` 发送消息。 - **消息监听**: `rabbitListen` 类监听队列消息。 ### 缓存(redis) - **缓存操作**: `RedisController` 提供了 Redis 缓存的增删改查接口。 - **消息订阅**: `RedisMessageListener` 监听 Redis 消息。 ### 搜索(elasticSearch) - **数据索引**: `ElasticSearchDao` 提供了数据索引操作。 - **搜索**: `ElasticSearchcomplexDao` 提供了高亮、排序、范围查询等功能。 ### 定时任务(scheduleTask) - **任务调度**: `QuartzUtil.addTask()` 添加定时任务。 - **任务执行**: `Job1.job2()` 是一个示例任务。 ### 页面展示(pageDemo) - **页面拦截器**: `WebRequest` 实现了请求拦截。 - **页面控制器**: `IndexController` 提供了页面跳转功能。 ### PDF 处理(pdf) - **PDF 转换**: `PDFUtils.pdfToPdf()` 实现 PDF 内容转换。 ### 动态分析(dynamicAnalysis) - **IP 地址分析**: `AnalysisIpAddressUtil` 提供 IP 地址分析和邮件发送功能。 ### 数据库监听(binlog4j-demo / cacal_demo) - **MySQL Binlog 解析**: `Binlog4jDemoApplication` 监听数据库变更。 - **Canal 集成**: `CacalApplication` 使用 Alibaba Canal 解析 MySQL 增量日志。 ## 依赖管理 - **JNA**: 用于调用本地库(如 `libNAudioServer.so` 或 `HCNetSDK.dll`)。 - **Netty**: 用于 TCP/UDP/WebSocket 通信。 - **Redis**: 用于缓存和消息订阅。 - **RabbitMQ**: 用于异步消息处理。 - **Elasticsearch**: 用于全文搜索。 - **MyBatis Plus**: 用于数据库操作。 - **Quartz**: 用于定时任务。 - **Thymeleaf**: 用于页面渲染。 - **InfluxDB**: 用于时间序列数据存储。 - **Canal / Binlog4j**: 用于 MySQL 数据库变更监听。 ## 项目结构 ``` springBootDemo_dev/ ├── NAudioServerCentos/ # 音频服务器模块(Linux) ├── NAudioServerWindows/ # 音频服务器模块(Windows) ├── hk-server/ # 海康威视摄像头 SDK 集成 ├── webSocket/ # WebSocket 通信模块 ├── netty/ # Netty TCP/UDP 通信模块 ├── activiti/ # Activiti 工作流模块 ├── rabbitmq/ # RabbitMQ 消息队列模块 ├── redis/ # Redis 缓存模块 ├── elasticSearch/ # Elasticsearch 搜索模块 ├── mybatisPlus/ # MyBatis Plus 数据库模块 ├── scheduleTask/ # Quartz 定时任务模块 ├── pageDemo/ # 页面展示模块 ├── influxdb/ # InfluxDB 时间序列数据库模块 ├── binlog4j-demo/ # MySQL Binlog 解析模块 ├── cacal_demo/ # Canal 数据库监听模块 ├── javaDemo/ # Java 示例代码 ├── pdf/ # PDF 处理模块 ├── mvnw / mvnw.cmd # Maven Wrapper ├── pom.xml # 项目主 POM 文件 └── README.md # 项目说明文档 ``` ## 贡献者指南 - **代码风格**: 使用 Spring Boot 标准编码规范。 - **提交规范**: 提交信息请使用清晰的描述,如 `feat: add new feature` 或 `fix: bug fix`。 - **Pull Request**: 提交 PR 前请确保代码通过测试,并遵循项目结构。 ## 许可证 该项目使用 [Apache License 2.0](LICENSE) 开源协议。