当前位置: 首页 > news >正文

合肥网站建设卫来科技公众平台是什么

合肥网站建设卫来科技,公众平台是什么,WordPress多重筛选功能,安溪住房和城乡建设网站背景Activiti 是一个开源架构的工作流引擎,基于 bpmn2.0 标准进行流程定义,其前身是 jBPM,Activiti 相对于 jBPM 更轻量,更易上手,且天然集成了 Spring。2010年 jBPM 创始人 Tom Baeyens 离开 JBoss,随之加…

背景

Activiti 是一个开源架构的工作流引擎,基于 bpmn2.0 标准进行流程定义,其前身是 jBPM,Activiti 相对于 jBPM 更轻量,更易上手,且天然集成了 Spring。2010年 jBPM 创始人 Tom Baeyens 离开 JBoss,随之加入 Alfresco 后很快推出了新的基于 jBPM4 的开源工作流系统 Activiti5 :

附 Activiti 官方地址:

  • Activiti 官方主页:https://www.activiti.org/

  • Activiti github 代码:https://github.com/Activiti/Activiti

  • Activiti 官方文档:https://www.activiti.org/userguide/#_introduction

Activiti 使用

1)Activiti 官方 demo 使用

Activiti 官方提供了 demo 供初学者入门使用,使用流程如下(尽量参考官方文档):

Step 1:下载 activiti-6.0.0.zip,并解压,找到 activiti-admin.war、activiti-app.war、activiti-rest.war 所在目录

activiti-admin.war、activiti-app.war 和 activiti-rest.war 是 Activiti 官方提供的 demo 应用(详细使用可参考官方文档:https://www.activiti.org/userguide/):

  • activiti-admin.war:连接好 Activiti endpoint 后,可通过该模块查看流程定义、发起的流程实例、任务等

  • activiti-app.war:核心 Activiti demo,提供在线流程设计器、表单管理、应用管理、用户管理等功能

  • activiti-rest.war:提供 Restful 风格的服务

附 activiti-6.0.0.zip 下载地址:https://www.activiti.org/get-started

Step 2:将上述三个 war 包放到 tomact webapps 目录中,启动 tomcat

注意,tomcat 版本使用 Tomcat 9.0.0 以下,否则无法启动。

Step 3:activiti-admin 示例。访问 http://localhost:8080/activiti-admin,并账密(admin/admin)登录

activiti-admin 主要提供数据监控,访问时需要提前连接 Activiti endpoint,否则没有任何数据,这里配置了 activiti-app(主核心demo)的端口,即在 activiti-app demo 中操作的流程任务数据在这里都可以查看到。

Step 4:activiti-app 示例。访问 http://localhost:8080/activiti-app,并账密(admin/test)登录

activiti-app 是 Activiti 官方提供的核心 activiti demo,也可称为 Activiti UI,提供了在线流程设计器、任务管理和用户管理模块,运行时数据默认存储在 H2(也可修改配置来替换数据库),下图为示例页面:

Step 5:activiti-rest 示例。访问 http://127.0.0.1:8080/activiti-rest/docs/,并账密(kermit/kermit)登录

Activiti 包含一个连接到 Activiti engine 的 rest api,可以通过将 activiti-rest.war 文件部署到 servlet 容器(如Apache Tomcat)来安装该 API。默认情况下,Activiti engine 将连接到内存 H2 数据库(可以更改 WEB-INF/classes 文件夹中 db.properties 文件配置来修改数据库,Activiti 启动后会自动初始化 23 张数据表)。另外,可通过引入 rest api 依赖将 rest api 集成到项目中,不再详述。

  • 更多详细有关 Activiti rest api 说明参考:https://www.activiti.org/userguide/#_rest_api

2)Activiti 请假 demo 示例

以请假流程作为 Activiti 基本使用示例(流程示例同上述 acitiviti-app 应用流程文件示例),员工发起请假,然后项目经理审批,再HR审批,最后CEO审批,若其中任意一个人拒绝,员工则需要重新提交流程。

其中 demo 示例如下,完整源码参考:https://download.csdn.net/download/zhuqiuhui/87462382

3)Activiti 与 Spring Boot 集成

Activiti 与 Spring Boot 集成比较简单,只需要要引入以下依赖即可(不再示例),详细参考 Activiti 官方文档与 Spring 集成章节:https://www.activiti.org/userguide/#springintegration

<dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter-basic</artifactId><version>${activiti.version}</version>
</dependency>

4)Activiti 与 jBPM 对比

Activiti 与 Spring 天然集成,同时有基于 Web 的 Activiti 流程设计器(详细参考上述官方 demo 中的 activiti-app.war 使用),另外,Activiti 在表结构设计上遵循运行时与历史数据的分离,可以快速读取运行时数据,仅当需要查询历史数据时再从专门的历史数据表中读取,这样大大的提高了数据的存取效率。

另外,相对于 jBPM,jBPM 与 jBoss 技术栈耦合太过紧密,国内社区不如 Activiti 活跃。

Activiti5 整体架构及相关核心类

Activiti5 整体架构

Activiti 工作流程如下:

  • Step 1:通过入口配置文件 activiti.cfg.xml 或者自定义 ProcessEngineConfiguration 实例,得到流程引擎配置

  • Step 2:由 ProcessEngineConfiguration实例得到 ProcessEngine 实例

  • Step 3:通过 ProcessEngine 实例得到 Activiti 提供所有接口服务

  • Step 4:执行流程引擎

使用示例:

ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration().....;
ProcessEngine processEngine = cfg.buildProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
//......

另外,Activiti 使用命令模式作为基础开发模式,流程引擎服务类(如TaskService等)中定义的各个方法都有对应用的命令对象(如开启流程命令:StartProcessInstanceCmd 等), 流程引擎服务类把各种请求委托成 xxCmd 交给 CommandExecutor 来执行,CommandExecutor 进一步交付给 CommandInterceptor 责任链来执行,xxCmd 来决定命令的接收者(参考 CommandContext),接收者执行后返回结果(参考下述 UML 图)。

Activiti5 核心类

1)EngineServices

该接口中定义了获取各种服务类实例对象的方法。

2)ProcessEngine 及默认实现类 ProcessEngineImpl

ProcessEngine 继承 EngineServices 接口,并增加了对流程引擎名称的获取以及关闭流程引擎的支持。ProcessEngineImpl 是 ProcessEngine 引擎的默认实现类,实际上是由 ProcessEngineConfigurationImpl 构造的,即 ProcessEngineImpl 调用 ProcessEngineConfigurationImpl 的方法获得服务。

3)ProcessEngineConfiguration 及默认实现 ProcessEngineConfigurationImpl

ProcessEngineConfiguration 是流程引擎配置类,ProcessEngineConfigurationImpl 继承 ProcessEngineConfiguration,负责创建一系列服务类实例对象、流程引擎实例对象以及ProcessEngineImpl 类实例对象,该类可以通过流程配置文件交给Spring容器管理或者使用编程方式动态构建。

常用的流程配置类如下:

  • StandaloneProcessEngineConfiguration:标准的流程引擎配置类

  • StandaloneInMemProcessEngineConfiguration:开发环境中自测使用,默认采用H2数据库存储数据。

  • .......

4)ProcessEngines

该类负责管理所有的流程引擎 ProcessEngine 集合,并负责流程引擎实例对象的注册、获取、注销等操作。

5)流程引擎服务类

RepositoryService

RepositoryService 是 Activiti 的资源管理类,提供流程定义和部署相关的存储服务。

RepositoryService repositoryService = processEngine.getRepositoryService();// 获取流程部署
Deployment deployment = repositoryService.createDeployment().addClasspathResource("MultiTask.bpmn").name("流程测试").category("").deploy();
// 获取流程定义
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
RuntimeService

RuntimeService 是 Activiti 的流程运行管理类,提供流程运行时相关的服务,如启动流程。

RuntimeService runtimeService = processEngine.getRuntimeService();// 启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", "Key001", vars);
TaskService

TaskService 是 Activiti 的任务管理类,提供任务节点的操作接口(如complete、delete、delegate等)

TaskService taskService = processEngine.getTaskService();
// 获取任务列表
List<Task> taskList = taskService.createTaskQuery().taskAssignee("mary").orderByTaskCreateTime().desc().list();
HistoryService

HistoryService 是 Activiti 的历史管理类,示例:

List<HistoricActivityInstance> historicActivityInstances = processEngine.getHistoryService()// 创建历史活动实例查询.createHistoricActivityInstanceQuery()//.finished() // 查询已经完成的任务.orderByHistoricActivityInstanceEndTime().asc().list();
IdentityService

IdentityService 是 Activiti 的认证管理类,用于管理和查询用户、组之间的关系。

IdentityService identityService = processEngine.getIdentityService();
identityService.setAuthenticatedUserId("createUserId");
......

6)JavaDelegate

作为 Activiti 的 ServiceTask 的实现,必须实现 JavaDelegate 接口,但是不需要实现序列化接口,Activiti 会使用反射机制将类初始化,因此在实现 JavaDelegate 接口的时候需要提供一个无参数的构造器,否则会抛出异常。

http://www.yayakq.cn/news/542667/

相关文章:

  • 分答网站学校网站建设与维护
  • 济南助企网站建设公司怎么样精准客户截流软件
  • 含山县查询建设工程的网站公司网页设计作品
  • 织梦网站站标自适应企业网站源码
  • 怎么查网站备案域名备案wordpress the7 seo
  • 网站建设及管理基本要求湖南省郴州市旅游景点介绍
  • 企业网站的价值体现是在工程建设科学技术奖申报网站
  • 怎么自己的电脑做网站仿豆瓣 wordpress
  • 网站建设公司哪些主要哪些动画制作软件手机版
  • 南宁网站设计运营广告设计图片大全 模板
  • 五种类型网站购买域名网站好
  • 成都网站建设中心张北北京网站建设
  • 用什么程序做网站好家具网站php源码
  • 如何做网站导航栏如何在360做网站SEO
  • 手机网站建设的公司排名查询企业信息
  • 国外做鞋子的网站有哪些云存储wordpress
  • 广西梧州市住房和城乡建设局网站wordpress耗时
  • 网站验收网站备案怎么那么麻烦
  • 我的世界做视频封面的网站wordpress移动端可视化
  • 做网站的公司那家好。长沙seo全网营销
  • 厦门亚龙网站建设淄博有做互联网广告的公司
  • 找网络公司做网站需要注意的 天堂资源官网在线资源
  • 关于排版的网站15年做哪些网站致富
  • 预约做家庭清洁的网站做最精彩绳艺网站
  • 山东建设厅官方网站李兴军企业制作宣传片
  • 装饰公司做网站网络营销是什么意思啊
  • 做的比较好旅游网站wordpress主题helpdesk
  • 网站建设0基础如何建设一个小型网站
  • 微信h5商城网站网站建设公司i
  • 建设网站的总结宁波seo托管公司