美文网首页
工作流引擎flowable基于springboot下,命令模式实

工作流引擎flowable基于springboot下,命令模式实

作者: 阿东7 | 来源:发表于2019-08-11 21:28 被阅读0次
    1. 如果我们是基于springboot下部署flowable,一般需要继承实现接口org.flowable.spring.boot.EngineConfigurationConfigurer,类似
    @Configuration
    public class MyFlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
      @Override
        public void configure(SpringProcessEngineConfiguration engineConfiguration) {
          //做你想做的事
        }
    }
    
    1. 在使用flowable的api时,经常会看到如下代码


      image.png

      这就是flowable的命令模式执行代码。在执行完成任务时,它还有附加执行了哪些代码呢?实际上,我认为应该还有责任链设计模式在里面。

    2. 回到类org.flowable.spring.SpringProcessEngineConfiguration。如果我们按第一步骤实现了EngineConfigurationConfigurer接口,在启动springboot的web工程时,会初始化类org.flowable.spring.SpringProcessEngineConfiguration。

    3. org.flowable.spring.SpringProcessEngineConfiguration类初始化,所做的事

    4. 查看org.flowable.spring.SpringProcessEngineConfiguration的父类org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl


      image.png

    在init()方法里,有一大堆的初始化。有个方法initCommandExecutors();


    image.png

    方法initCommandExecutors里的内容如下


    image.png

    方法initCommandInterceptors里的getDefaultCommandInterceptors内容


    image.png

    创建了各种拦截器,也就是当执行某个命令时,会执行这些拦截器。(包括了日志、事务等拦截器)
    例如当执行taskService.complete完成任务时,会被事务拦截器拦截,启动事务等其它功能,如果需要我们也可以自定义拦截器

    方法initCommandExecutor里的内容如下


    image.png image.png

    把各个拦截器命令串联起来

    1. 如果看懂了flowable的这个命令设计模式,搞懂flowable的执行顺序,单步调试flowable的代码就比较容易了。并且也可以很好的扩展flowable的功能。

    相关文章

      网友评论

          本文标题:工作流引擎flowable基于springboot下,命令模式实

          本文链接:https://www.haomeiwen.com/subject/xrtejctx.html