enhancement #I7K3T1 自带AOP拦截需要增强获取tag等信息

This commit is contained in:
everywhere.z
2023-07-11 16:16:16 +08:00
parent e5b21d6245
commit de34fd83e0
10 changed files with 49 additions and 50 deletions

View File

@@ -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);
} }

View File

@@ -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);
} }
// 是否进入该节点 // 是否进入该节点

View File

@@ -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);
} }

View File

@@ -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环境下为空实现
} }

View File

@@ -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);
} }
} }

View File

@@ -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);
} }
} }

View File

@@ -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"));
} }
} }

View File

@@ -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"));
} }
} }

View File

@@ -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"));
} }
} }

View File

@@ -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"));
} }
} }