mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-05-14 12:12:08 +08:00
enhancement #I7K3T1 自带AOP拦截需要增强获取tag等信息
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.yomahub.liteflow.aop;
|
package com.yomahub.liteflow.aop;
|
||||||
|
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,18 +18,8 @@ import com.yomahub.liteflow.slot.Slot;
|
|||||||
*/
|
*/
|
||||||
public interface ICmpAroundAspect {
|
public interface ICmpAroundAspect {
|
||||||
|
|
||||||
/**
|
void beforeProcess(NodeComponent cmp);
|
||||||
* 前置处理
|
|
||||||
* @param nodeId 节点ID
|
|
||||||
* @param slot
|
|
||||||
*/
|
|
||||||
void beforeProcess(String nodeId, Slot slot);
|
|
||||||
|
|
||||||
/**
|
void afterProcess(NodeComponent cmp);
|
||||||
* 后置处理
|
|
||||||
* @param nodeId 节点ID
|
|
||||||
* @param slot
|
|
||||||
*/
|
|
||||||
void afterProcess(String nodeId, Slot slot);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ public abstract class NodeComponent {
|
|||||||
public void beforeProcess() {
|
public void beforeProcess() {
|
||||||
// 全局切面只在spring体系下生效,这里用了spi机制取到相应环境下的实现类
|
// 全局切面只在spring体系下生效,这里用了spi机制取到相应环境下的实现类
|
||||||
// 非spring环境下,全局切面为空实现
|
// 非spring环境下,全局切面为空实现
|
||||||
CmpAroundAspectHolder.loadCmpAroundAspect().beforeProcess(nodeId, this.getSlot());
|
CmpAroundAspectHolder.loadCmpAroundAspect().beforeProcess(this.self);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void process() throws Exception;
|
public abstract void process() throws Exception;
|
||||||
@@ -156,7 +156,7 @@ public abstract class NodeComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void afterProcess() {
|
public void afterProcess() {
|
||||||
CmpAroundAspectHolder.loadCmpAroundAspect().afterProcess(nodeId, this.getSlot());
|
CmpAroundAspectHolder.loadCmpAroundAspect().afterProcess(this.self);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 是否进入该节点
|
// 是否进入该节点
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.yomahub.liteflow.spi;
|
package com.yomahub.liteflow.spi;
|
||||||
|
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -10,8 +11,8 @@ import com.yomahub.liteflow.slot.Slot;
|
|||||||
*/
|
*/
|
||||||
public interface CmpAroundAspect extends SpiPriority {
|
public interface CmpAroundAspect extends SpiPriority {
|
||||||
|
|
||||||
void beforeProcess(String nodeId, Slot slot);
|
void beforeProcess(NodeComponent cmp);
|
||||||
|
|
||||||
void afterProcess(String nodeId, Slot slot);
|
void afterProcess(NodeComponent cmp);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.yomahub.liteflow.spi.local;
|
package com.yomahub.liteflow.spi.local;
|
||||||
|
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
import com.yomahub.liteflow.spi.CmpAroundAspect;
|
import com.yomahub.liteflow.spi.CmpAroundAspect;
|
||||||
|
|
||||||
@@ -12,12 +13,12 @@ import com.yomahub.liteflow.spi.CmpAroundAspect;
|
|||||||
public class LocalCmpAroundAspect implements CmpAroundAspect {
|
public class LocalCmpAroundAspect implements CmpAroundAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeProcess(String nodeId, Slot slot) {
|
public void beforeProcess(NodeComponent cmp) {
|
||||||
// 无spring环境下为空实现
|
// 无spring环境下为空实现
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterProcess(String nodeId, Slot slot) {
|
public void afterProcess(NodeComponent cmp) {
|
||||||
// 无spring环境下为空实现
|
// 无spring环境下为空实现
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.yomahub.liteflow.spi.solon;
|
|||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
import com.yomahub.liteflow.spi.CmpAroundAspect;
|
import com.yomahub.liteflow.spi.CmpAroundAspect;
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
@@ -23,16 +24,16 @@ public class SolonCmpAroundAspect implements CmpAroundAspect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeProcess(String nodeId, Slot slot) {
|
public void beforeProcess(NodeComponent cmp) {
|
||||||
if (ObjectUtil.isNotNull(cmpAroundAspect)) {
|
if (ObjectUtil.isNotNull(cmpAroundAspect)) {
|
||||||
cmpAroundAspect.beforeProcess(nodeId, slot);
|
cmpAroundAspect.beforeProcess(cmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterProcess(String nodeId, Slot slot) {
|
public void afterProcess(NodeComponent cmp) {
|
||||||
if (ObjectUtil.isNotNull(cmpAroundAspect)) {
|
if (ObjectUtil.isNotNull(cmpAroundAspect)) {
|
||||||
cmpAroundAspect.afterProcess(nodeId, slot);
|
cmpAroundAspect.afterProcess(cmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.yomahub.liteflow.spi.spring;
|
package com.yomahub.liteflow.spi.spring;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
import com.yomahub.liteflow.spi.CmpAroundAspect;
|
import com.yomahub.liteflow.spi.CmpAroundAspect;
|
||||||
import com.yomahub.liteflow.spring.ComponentScanner;
|
import com.yomahub.liteflow.spring.ComponentScanner;
|
||||||
@@ -14,16 +15,16 @@ import com.yomahub.liteflow.spring.ComponentScanner;
|
|||||||
public class SpringCmpAroundAspect implements CmpAroundAspect {
|
public class SpringCmpAroundAspect implements CmpAroundAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeProcess(String nodeId, Slot slot) {
|
public void beforeProcess(NodeComponent cmp) {
|
||||||
if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) {
|
if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) {
|
||||||
ComponentScanner.cmpAroundAspect.beforeProcess(nodeId, slot);
|
ComponentScanner.cmpAroundAspect.beforeProcess(cmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterProcess(String nodeId, Slot slot) {
|
public void afterProcess(NodeComponent cmp) {
|
||||||
if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) {
|
if (ObjectUtil.isNotNull(ComponentScanner.cmpAroundAspect)) {
|
||||||
ComponentScanner.cmpAroundAspect.afterProcess(nodeId, slot);
|
ComponentScanner.cmpAroundAspect.afterProcess(cmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.DefaultContext;
|
import com.yomahub.liteflow.slot.DefaultContext;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
|
|
||||||
public class CmpAspect implements ICmpAroundAspect {
|
public class CmpAspect implements ICmpAroundAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeProcess(String nodeId, Slot slot) {
|
public void beforeProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, "before");
|
context.setData(cmp.getNodeId(), "before");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterProcess(String nodeId, Slot slot) {
|
public void afterProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
|
context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.DefaultContext;
|
import com.yomahub.liteflow.slot.DefaultContext;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
|
|
||||||
public class CmpAspect implements ICmpAroundAspect {
|
public class CmpAspect implements ICmpAroundAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeProcess(String nodeId, Slot slot) {
|
public void beforeProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, "before");
|
context.setData(cmp.getNodeId(), "before");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterProcess(String nodeId, Slot slot) {
|
public void afterProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
|
context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.DefaultContext;
|
import com.yomahub.liteflow.slot.DefaultContext;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
|
|
||||||
public class CmpAspect implements ICmpAroundAspect {
|
public class CmpAspect implements ICmpAroundAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeProcess(String nodeId, Slot slot) {
|
public void beforeProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, "before");
|
context.setData(cmp.getNodeId(), "before");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterProcess(String nodeId, Slot slot) {
|
public void afterProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
|
context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,21 +2,22 @@ package com.yomahub.liteflow.test.aop.aspect;
|
|||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
import com.yomahub.liteflow.aop.ICmpAroundAspect;
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
import com.yomahub.liteflow.slot.DefaultContext;
|
import com.yomahub.liteflow.slot.DefaultContext;
|
||||||
import com.yomahub.liteflow.slot.Slot;
|
import com.yomahub.liteflow.slot.Slot;
|
||||||
|
|
||||||
public class CmpAspect implements ICmpAroundAspect {
|
public class CmpAspect implements ICmpAroundAspect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeProcess(String nodeId, Slot slot) {
|
public void beforeProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, "before");
|
context.setData(cmp.getNodeId(), "before");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterProcess(String nodeId, Slot slot) {
|
public void afterProcess(NodeComponent cmp) {
|
||||||
DefaultContext context = slot.getFirstContextBean();
|
DefaultContext context = cmp.getFirstContextBean();
|
||||||
context.setData(nodeId, StrUtil.format("{}_{}", context.getData(nodeId), "after"));
|
context.setData(cmp.getNodeId(), StrUtil.format("{}_{}", context.getData(cmp.getNodeId()), "after"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user