Activiti命令框架

1、每个命令执行前的拦截器有4个:
   LogInterceptor;   SpringTransactionInterceptor; CommandContextInterceptor; CommandInvoker.其拦截器执行顺序也是以上列出的顺序。
2. 所有命令都是通过 CommandExecutorImpl 的实例来执行的,并依次通过LogInterceptor,SpringTransactionInterceptor, CommandContextInterceptor, CommandInvoker这三个命名拦截器,很明显,最后由 CommandInvoker真真开始执行此命令
 3.  CommandContextInterceptor中的execute很重要。关键是 CommandContext中的close方法,其中主要包含数据库的大部分操作(插入,更新,删除)。

    注意:1. CommandContextInterceptor:主要功能是以当前命令和流程配置信息为基础创建出当前命令的执行上下文,然后将此命令上下文保存在当前线程的stack变量中(即 executionContextStackThreadLocal )。
       
   总之,命令的执行流程:当前命令链式的依次通过 LogInterceptor, SpringTransactionInterceptor,接着进入 CommandContextInterceptor,此时它将当前命令和 ProcessEngineConfigurationImpl的实例结合起来组成 CommandContext对象,并将其保存在类Context的静态类型的ThreadLocal变量中的stack中。接着由 CommandInvoker 去真真执行该命令,命令执行完后返回到 CommandContextInterceptor中,接着执行   context.close()完成相关数据库操作。最终事务交给spring管理(此处是与spring结合的)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值