Activiti的基础编程框架

Activiti的基础编程框架

ID:42991834

大小:599.02 KB

页数:11页

时间:2019-09-25

Activiti的基础编程框架_第1页
Activiti的基础编程框架_第2页
Activiti的基础编程框架_第3页
Activiti的基础编程框架_第4页
Activiti的基础编程框架_第5页
资源描述:

《Activiti的基础编程框架》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1.Activiti的基础编程框架Activiti基于Spring,ibatis等开源中间件作为软件平台,在此之上构建了非常清晰的开发框架。上图列出了Activiti的核心组件。2.Activiti的核心设计模型lFacade外观模式:ProcessEngine啊,RepostoryService啊,都是外观接口。作为二次开发人员,可以把引擎内部看做黑盒,不关心内部的具体实现,直接调用这些暴露出来api接口完成对应的功能。lCommand命令模式:所有api接口的功能,在引擎的实现类中,都封装成了Command命令,再

2、交给统一的CommandExecutor执行。使用Command命令模式的好处时,所有功能都通过统一入口进入,所以可以统一管理,为后续的Interceptor拦截器模式的应用做好了准备。lInterceptor拦截器模式:流程引擎提供了多种拦截器,通过这些拦截器可以实现“准备上下文环境”,“事务控制”,“乐观锁自动重试”等功能。lSession工程模式:这个很好理解,activiti中通过SessionFactory接口实现类去管理各种session的实现者。1.主要类介绍:ProcessEngine:流程引擎的抽象,

3、对于开发者来说,它是我们使用Activiti的facade,通过它可以获得我们需要的一切服务。XXService(TaskService,RuntimeService,RepositoryService...):Activiti按照流程的生命周期(定义,部署,运行)把不同阶段的服务封装在不同的Service中,用户可以非常清晰地使用特定阶段的接口。通过ProcessEngine能够获得这些Service实例。TaskService,RuntimeService,RepositoryService是非常重要的三个Serv

4、ice:lTaskService:流程运行过程中,与每个任务节点相关的接口,比如complete,delete,delegate等等lRepositoryService:流程定义和部署相关的存储服务。lRuntimeService:流程运行时相关服务,如startProcessInstanceByKey.关于ProcessEngine和XXService的关系,可以看下面这张图:CommandContextIntercepter(CommandExecutor):通过CommandExecutor启动CommandCo

5、ntextIntercepter责任链,Activiti使用命令模式作为基础开发模式,上面Service中定义的各个方法都对应相应的命令对象(xxCmd),Service把各种请求委托给xxCmd,xxCmd来决定命令的接收者,接收者执行后返回结果。而CommandContextIntercepter顾名思义,它是一个拦截器,拦截所有命令,在命令执行前后执行一些公共性操作。比如CommandContextIntercepter的核心方法:Java代码 1.  public  T execute(Command

6、> command) {  2.    CommandContext context = commandContextFactory.createCommandContext(command);  3.  4.    try {  5.//执行前保存上下文  6.      Context.setCommandContext(context);  7.      Context.setProcessEngineConfiguration(processEngineConfiguration);  8.      ret

7、urn next.execute(command);//执行命令  9.        10.    } catch (Exception e) {  11.      context.exception(e);  12.        13.    } finally {  14.      try {  15.//关闭上下文,内部会flush session,把数据持久化到db等  16.        context.close();  17.      } finally {  18.//释放上下文  19. 

8、       Context.removeCommandContext();  20.        Context.removeProcessEngineConfiguration();  21.      }  22.    }  23.      24.    return null;  25.  } 1.Activiti的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。