activiti6的理解

首先,个人感悟。学习新技术过程:官方文档 + 源码结构 + 架构图 + 官方例子(一般都在对应的包中)。
官方文档(各种配置说明) :http://www.mossle.com/docs/activiti/index.html
源码结构:https://www.activiti.org/javadocs/
(你完全可以根据 官方文档 + 源码画出架构图) 架构图:

在这里插入图片描述
官方例子:(可直接运行)
在这里插入图片描述
demo跟踪:(完成下面的东西,你需要引入jar包,配置activiti.cfg.xml、SLF4J 日志)
还需要作如下内容:
1,eclipse安装activiti designer插件(自己百度),安装方式:help->install new software。一路next即可。安装完成你可在new->other 输入activiti即可看到。
在这里插入图片描述
2,编写一个.bpmn流程文件,编写完成后,选择以XML方式打开。就可看到生成好的文件。
3,创建流程引擎,会去数据库建表(不出意外都会自动创建,不用你操心),如果没能成功你也可以利用activiti包中的sql文件插入。
在这里插入图片描述
测试代码:

package com.cun.activiti;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

public class FirstActiviti {



/* 如果是springboot直接注入就好了。下面我们尝试用常规方式
 * @Autowired RepositoryService repositoryService;
 */

public static void main(String[] args) {
    // 创建流程引擎,数据创建出所需要的表
    ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
    // 由流程引擎得到流程存储服务组件
    RepositoryService repositoryService = engine.getRepositoryService();
    // 流程运行时服务组件
    RuntimeService runtimeService = engine.getRuntimeService();
    // 获取流程任务组件
    TaskService taskService = engine.getTaskService();
    // 部署流程文件(可以部署多个),部署到act_re_deployment表,对应的资源文件在act_ge_bytearray表中
    repositoryService.createDeployment().addClasspathResource("processes/test_processes.bpmn").deploy();
    // 启动流程,oneTaskProcess时流程文件中的唯一ID
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess");
    // 实际中:个人用户和管理用户是分开写的
    // 第一个审核(个人用户)。
    Task task =  taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
    System.out.println("" + task.getName());
    // 审核通过
    taskService.complete(task.getId());
    // 下一个任务审核(管理用户)
    task =  taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
    System.out.println("" + task.getName());
    // 审核通过
    taskService.complete(task.getId());
    // 接下来没有任务,就结束了 。验证结束输出为null
    task =  taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
    System.out.println("" + task.getName());
    engine.close();
    System.exit(0);;
    
}
}

activiti.cfg.xml有一点特殊给出:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration" 	class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:postgresql://localhost:5432/activiti" />
<property name="jdbcDriver" value="org.postgresql.Driver" />
<property name="jdbcUsername" value="postgres" />
<property name="jdbcPassword" value="zhouyi" />
<!-- 自动更新数据库(特殊) -->
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>

另外引擎又分为流程引擎和规则引擎(Drools)。
流程引擎:上面已经很清楚了。
规则引擎(Drools):就是一种规则判断,了解这个之后,还得了解MVEL。MVEL是一个功能强大的基于Java应用程序的表达式语言。
更多的信息查看官方文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值