Springboot + activiti 的学习探索之旅

1.参考文档

http://www.mossle.com/docs/activiti/index.html

2.Springboot配置Activiti

pom文件中引入依赖,如下

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter-basic</artifactId>
    <version>6.0.0</version>
    <exclusions>
        <exclusion>
            <artifactId>mybatis</artifactId>
            <groupId>org.mybatis</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-json-converter</artifactId>
    <version>6.0.0</version>
</dependency>

application.yml 文件中加入如下配置

spring:
  activiti:
    check-process-definitions: true #自动检查、部署流程定义文件
    database-schema-update: true #自动更新数据库结构
    async-executor-activate: false #停止打印ACT_RU_TIMER_JOB
    process-definition-location-prefix: classpath:/processes/ #流程定义文件存放目录

在 项目启动类 上添加如下注解:

@EnableAutoConfiguration(exclude = SecurityAutoConfiguration.class)

3.bpmn文件介绍

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="Examples" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1539757531057" name="" targetNamespace="Examples" typeLanguage="http://www.w3.org/2001/XMLSchema">

	<!--【process】(流程定义根元素,代表了一个流程定义的开始)
		id:流程定义ID,代表该流程的唯一性,启动该流程时需要使用该ID(在库中为key_,该字段可重复,"不同版本"同一工作流该字段相同)
		isExecutable:表示该流程是否可执行,其值有true和false,默认为true
		name:流程名称
		type:流程类型
		isClosed:流程是否已关闭,关闭不能执行-->
	<process id="oneTaskProcess" isClosed="false" name="The One Task Process" processType="None">

		<!--【startEvent】(流程启动事件,一个process只能有一个,且必须为流程起始元素)
			id:启动节点id
			name:启动节点名称-->
        <startEvent id="theStart" name="开始"/>

		<!--【sequenceFlow】(顺序流)
			id:顺序流id
			sourceRef:上一个节点id
			targetRef:下一个节点id-->
        <sequenceFlow id="flow1" sourceRef="theStart" targetRef="task_1"/>

		<!--【userTask】(流程中间用户任务,夹在startEvent与endEvent之间的节点,表示需要待办人处理的节点)
			id:任务节点id,必须是唯一的
			name:任务节点名称
			activiti:assignee:任务所属用户,只能指定用户完成这个任务,即任务办理人
			activiti:candidateUsers:多个任务办理人
			activiti:candidateGroups:任务处理人候选组,处理人必须在这个组内
			activiti:exclusive:独家的,好像是在排它性网关中使用,意思应该是在有并行分支情况下,只会走其中一条
			activiti:dueDate:设置用户任务到期日期
			activiti:priority:用户任务优先级,0-100-->
        <userTask activiti:assignee="${user}" activiti:exclusive="true" id="task_1" name="第一次审批">

			<!--【extensionElements】(userTask的子元素,用于扩展元素)-->
			<extensionElements>

				<!--【activiti:taskListener】(扩展元素之一,用于监听某个任务的运行)
					event:监听的任务事件名,create、assignment(分配任务)、complete
					class:任务监听器类,需要实现TaskListener-->
				<activiti:taskListener></activiti:taskListener>

			</extensionElements>

		</userTask>

        <sequenceFlow id="flow2" sourceRef="task_1" targetRef="task_2"/>

        <userTask activiti:assignee="${user}" id="task_2" name="正常流转"/>

        <sequenceFlow id="flow3" sourceRef="task_2" targetRef="theEnd"/>

        <sequenceFlow id="flow4" sourceRef="task_1" targetRef="theEnd"/>

		<!--【endEvent】(流程结束事件,一个process只能有一个,且必须为流程结束元素)
			id:结束节点id
			name:结束节点名称-->
        <endEvent id="theEnd" name="结束"/>

    </process>

</definitions>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值