diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/aop/ICmpAroundAspect.java b/liteflow-core/src/main/java/com/yomahub/liteflow/aop/ICmpAroundAspect.java new file mode 100644 index 000000000..b0d2bc006 --- /dev/null +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/aop/ICmpAroundAspect.java @@ -0,0 +1,17 @@ +/** + *
Title: liteflow
+ *Description: 轻量级的组件式流程框架
+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/10/22 + */ +package com.yomahub.liteflow.aop; + +import com.yomahub.liteflow.entity.data.Slot; + +public interface ICmpAroundAspect { + + void beforeProcess(Slot slot); + + void afterProcess(Slot slot); +} diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java index 852fa26c3..5e201756e 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java @@ -8,6 +8,7 @@ package com.yomahub.liteflow.core; import com.yomahub.liteflow.entity.flow.Executable; +import com.yomahub.liteflow.spring.ComponentScaner; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.StopWatch; import org.slf4j.Logger; @@ -40,8 +41,18 @@ public abstract class NodeComponent { StopWatch stopWatch = new StopWatch(); stopWatch.start(); + //process前置处理 + if(ComponentScaner.cmpAroundAspect != null){ + ComponentScaner.cmpAroundAspect.beforeProcess(slot); + } + process(); + //process后置处理 + if(ComponentScaner.cmpAroundAspect != null){ + ComponentScaner.cmpAroundAspect.afterProcess(slot); + } + stopWatch.stop(); long timeSpent = stopWatch.getTime(); diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/spring/ComponentScaner.java b/liteflow-core/src/main/java/com/yomahub/liteflow/spring/ComponentScaner.java index 3a1ac1be9..a833bb171 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/spring/ComponentScaner.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/spring/ComponentScaner.java @@ -9,6 +9,8 @@ package com.yomahub.liteflow.spring; import java.util.HashMap; import java.util.Map; + +import com.yomahub.liteflow.aop.ICmpAroundAspect; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; @@ -24,6 +26,8 @@ public class ComponentScaner implements BeanPostProcessor, PriorityOrdered { public static Map