diff --git a/docs/guide_cn.md b/docs/guide_cn.md
index b22dd9a03..a2293343e 100644
--- a/docs/guide_cn.md
+++ b/docs/guide_cn.md
@@ -9,11 +9,13 @@ liteflow需要你的项目使用maven
${liteFlow.version}
```
-最新版本为**2.2.2**,为稳定版本,目前jar包已上传中央仓库,可以直接依赖到
+最新版本为*2.2.2*,为稳定版本,目前jar包已上传中央仓库,可以直接依赖到
## 1.2流程配置文件
-(不依赖任何框架的写法)
+如果你的项目不依赖spring框架(现在还有不依赖spring的项目吗?没关系,liteflow也为你提供了配置)
+
+如果你的项目使用spring或者springboot,请跳过此章节
```xml
@@ -71,6 +73,9 @@ Slot slot = executor.execute("demoChain", "arg");
如果你的项目使用spring,推荐参考[和Spring进行集成](https://bryan31.gitee.io/liteflow/#/?id=%e4%ba%8c%e3%80%81%e5%92%8cspring%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90)
# 二、和spring进行集成
+
+针对于使用了spring但没有使用springboot的项目
+
## 2.1流程配置可以省略的部分
流程配置中的`nodes`节点,可以不用配置了,支持spring的自动扫描方式。你需要在你的spring配置文件中定义
```xml
@@ -107,7 +112,7 @@ public class AComponent extends NodeComponent
## 3.1 依赖
-liteFlow提供了liteflow-spring-boot-starter依赖包
+liteFlow提供了liteflow-spring-boot-starter依赖包,提供自动装配功能
```xml
@@ -186,7 +191,7 @@ spring中需要改的地方还是执行器的配置,只需要在配置的路
# 六、架构设计
-## 6.1组件式流程引擎架构设计
+## 6.1组件编排式流程引擎架构设计

Handler Unit:我们想象成每一个业务都是一个业务组件,每一个业务组件就是一个handlerUnit(处理单元)
@@ -236,22 +241,47 @@ public T execute(String chainId,Object param,Class extends Sl
在组件节点里,随时可以通过方法`getSlot`获取当前的数据槽,从而可以获取任何数据。
-## 7.4条件节点
+## 7.4路由节点
在实际业务中,往往要通过动态的业务逻辑判断到底接下去该执行哪一个节点
```xml
-
+
```
利用表达式可以很方便的进行条件的判断
c节点是用来路由的,被称为条件节点,这种节点需要继承`NodeCondComponent`类
-需要实现方法`processCond`,这个方法需要返回`Class`类型,就是具体的结果节点
+需要实现方法`processCond`,这个方法需要返回`String`类型,就是具体的结果节点
-## 7.5嵌套执行
+## 7.5子流程
+
+liteflow从`2.3.0`开始支持显式子流程,在xml里配置的节点,可以是节点,也可以是流程id。比如,你可以这么配置
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+这样是不是很清晰
+
+liteflow支持无穷的嵌套结构,只要你想的出。可以完成相对复杂的流程。
+
+!> 如果存在相同名字的节点和流程,优先节点。
+
+## 7.6节点内执行流程
+
+liteflow支持在一个节点里通过代码调用另外一条流程, 这个流程关系在xml中并不会显示。所以这里称之为隐式调用。
+
+隐式调用可以完成更为复杂的子流程,比如循环调用:
-liteFlow可以无极嵌套执行n条流程
```java
@Component("h")
public class HComponent extends NodeComponent {
@@ -262,7 +292,9 @@ public class HComponent extends NodeComponent {
@Override
public void process() {
System.out.println("Hcomponent executed!");
- flowExecutor.invoke("strategy1",3, DefaultSlot.class, this.getSlotIndex());
+ for(int i=0;i<10;i++){
+ flowExecutor.invoke("strategy1",3, DefaultSlot.class, this.getSlotIndex());
+ }
}
}
@@ -273,6 +305,13 @@ public class HComponent extends NodeComponent {
liteFlow在执行每一条流程链后会打印步骤
样例如下:
+
+```
+a==>c==>m==>q==>p==>p1==>g
+```
+
+当然你还可能看到这样的情况:
+
```
a==>c==>h(START)==>m==>p==>p1==>h(END)==>g
```
@@ -326,13 +365,20 @@ liteFlow提供了简单的监控,目前只统计一个指标:每个组件的
* 增加组件里结束整个流程的配置
* 修复一些可能导致内存变大的bug
-## 2.2.0 更新日志
+## 2.2.2 更新日志
更新点如下:
-* pom规划化
+* pom规划化,符合中央仓库的要求
* 包路径改成个人域名路径
* 修复当有多个流程配置时,条件节点失效的bug
+## 2.3.0 更新日志
+
+更新点如下:
+
+* 重构核心部分代码
+* 增加子流程显式调用
+
# 九、联系作者
