组件切面

LiteFlow从2.5.0版本开始,开始支持组件的切面功能,你可以通过2种方式进行

全局切面

全局切面是针对于所有的组件,进行切面。你只需要做如下实现即可:

  1. public class CmpAspect implements ICmpAroundAspect {
  2. @Override
  3. public void beforeProcess(String nodeId, Slot slot) {
  4. //before business
  5. }
  6. @Override
  7. public void afterProcess(String nodeId, Slot slot) {
  8. //after business
  9. }
  10. }

Aspect的切面

LiteFlow同时也支持了Spring Aspect的切面,你可以用@Aspect标注对任意包,任意规则内的组件进行切面

  1. @Aspect
  2. public class CustomAspect {
  3. @Pointcut("execution(* com.yomahub.liteflow.test.aop.cmp1.*.process())")
  4. public void cut() {
  5. }
  6. @Around("cut()")
  7. public Object around(ProceedingJoinPoint jp) throws Throwable {
  8. //do before business
  9. Object returnObj = jp.proceed();
  10. //do after business
  11. return returnObj;
  12. }
  13. }