# falcon **Repository Path**: duhh/falcon ## Basic Information - **Project Name**: falcon - **Description**: 学习项目 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-29 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Falcon 项目 README ## 项目简介 Falcon 是一个基于 Spring Boot 的 Java 项目,旨在提供一系列可复用的框架组件与功能模块,主要聚焦于线程池管理、策略模式实现、责任链模式设计以及基础架构工具。项目由多个模块组成,包括动态线程池、分布式 ID 生成、设计模式抽象实现等。 ### 主要模块功能 - **falcon-dynamic-threadpool**:提供动态线程池管理功能,支持配置热更新、监控以及邮件告警机制。 - **falcon-distributedid**:封装设计模式相关的抽象类与实现,包括策略模式、责任链模式等。 - **falcon-base**:包含通用工具类与 Spring 上下文管理器。 - **falcon-demo**:演示模块,提供简单的 Web 接口和线程池使用示例。 ## 主要特性 - **动态线程池**:支持运行时动态调整线程池参数,集成 Nacos 作为配置中心。 - **监控与告警**:提供线程池状态监控,并支持通过邮件发送告警信息。 - **策略与责任链模式**:提供通用接口与上下文抽象,便于快速实现策略切换与流程编排。 - **OpenAPI 集成**:演示模块支持通过 OpenAPI 文档查看接口信息。 ## 技术栈 - Java 17 - Spring Boot 3.x - Nacos 配置中心 - OpenAPI 3 - Lombok - Maven 构建工具 ## 环境要求 - Java 17 或更高版本 - Maven 3.8.x - Nacos 服务(可选,用于动态配置) ## 快速开始 ### 1. 克隆项目 ```bash git clone https://gitee.com/duhh/falcon.git cd falcon ``` ### 2. 构建项目 ```bash mvn clean install ``` ### 3. 运行演示模块 进入 `falcon-demo` 模块并运行: ```bash cd falcon-demo mvn spring-boot:run ``` 服务启动后,访问 `http://localhost:8080/api` 查看接口文档或触发线程池测试接口。 ## 使用示例 ### 线程池使用 在 `UserController` 中,通过 `ThreadPoolTestService` 触发线程池执行任务: ```java @GetMapping("/test/dynamicThreadPool") public void executeTask() { threadPoolService.executeTask(() -> { log.info("Task is running in dynamic thread pool"); }); } ``` ### 策略模式使用 在 `DemoStrategy` 中实现策略接口,并通过 `AbstractStrategyChoose` 动态选择策略: ```java @Component public class DemoStrategy implements AbstractExecuteStrategy { @Override public String mark() { return "demo"; } @Override public String executeResp(String requestParam) { return "Processed: " + requestParam; } } ``` 调用策略: ```java @RestController public class StrategyController { private final AbstractStrategyChoose strategyChoose; public StrategyController(AbstractStrategyChoose strategyChoose) { this.strategyChoose = strategyChoose; } @GetMapping("/strategy/{mark}") public String executeStrategy(@PathVariable String mark, @RequestParam String input) { return strategyChoose.chooseAndExecuteResp(mark, input); } } ``` ## 配置说明 线程池相关配置可在 `application.yaml` 中定义,例如: ```yaml dynamic: thread-pool: config-data-id: dynamic-thread-pool-config config-group: DEFAULT_GROUP alert: email: from: no-reply@example.com to: admin@example.com ``` 如使用 Nacos,可通过配置中心动态更新线程池参数。 ## 贡献指南 欢迎贡献代码和文档。请遵循以下步骤: 1. Fork 本仓库 2. 创建新分支 (`git checkout -b feature/your-feature`) 3. 提交更改 (`git commit -am 'Add some feature'`) 4. 推送分支 (`git push origin feature/your-feature`) 5. 创建 Pull Request ## 许可证 本项目采用 MIT License。详见 [LICENSE](LICENSE) 文件。 ## 联系方式 如有问题或建议,欢迎提 Issue 或联系作者。