# simplechain **Repository Path**: uncleqiao/simplechain ## Basic Information - **Project Name**: simplechain - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-08-30 - **Last Updated**: 2025-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SimpleChain SimpleChain 是一个轻量级的 Java 链式执行框架,支持通过编程方式或 Spring 集成方式构建和执行节点链。它适用于需要按顺序执行多个处理步骤的场景,例如业务流程编排、过滤器链等。 ## 特性 - **链式结构**:基于 `DefaultNode` 抽象类构建双向链表,支持节点的顺序执行。 - **灵活扩展**:通过继承 `DefaultNode` 并实现 `doExec` 方法,可以轻松定义自定义节点逻辑。 - **Spring 集成**:支持通过 Spring 自动注册节点和管道,并使用 `@NodeGroup` 注解对节点进行分组管理。 - **多组支持**:一个节点可以属于多个组,便于组织和复用不同业务场景下的节点链。 - **顺序控制**:支持通过 `getOrderNum()` 方法定义节点在链中的顺序。 ## 模块结构 - `bo/`:包含 `NodeParam` 和 `NodeResult`,用于传递执行参数和返回执行结果。 - `core/`:核心模块,包含链式结构的基础类和接口,如 `DefaultNode`, `NodePipeline`, `PipelineActuator`。 - `spring/`:Spring 集成模块,提供自动注册节点和管道的功能。 - `samples/`:示例代码,展示普通 Java 使用方式和 Spring 使用方式。 ## 快速开始 ### 构建节点链(普通 Java 示例) ```java Node1 node1 = new Node1(); Node2 node2 = new Node2(); Node3 node3 = new Node3(); NodePipeline pipeline = new NodePipeline<>("demoPipeline"); pipeline.addFirst(node1).addLast(node2).addLast(node3); NodeParam param = NodeParam.of("inputData"); NodeResult result = pipeline.exec(param, null); ``` ### 构建节点链(Spring 示例) 1. 定义节点并使用 `@NodeGroup` 注解: ```java @Component @NodeGroup("testGroup") public class FirstNode extends DefaultNode { @Override protected NodeResult doExec(NodeParam param, NodeResult preRtn) { // 执行逻辑 return NodeResult.of("result"); } } ``` 2. 注入并使用 `PipelineActuator`: ```java @Autowired @Qualifier("testGroup") private PipelineActuator pipelineActuator; NodeParam param = NodeParam.of("inputData"); NodeResult result = pipelineActuator.exec(param, null); ``` ## 贡献指南 欢迎贡献代码和改进文档。请确保遵循以下步骤: 1. Fork 项目。 2. 创建新分支。 3. 提交你的修改。 4. 发起 Pull Request。 ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。