前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第一节:实现Activiti6.0的第一个demo

第一节:实现Activiti6.0的第一个demo

作者头像
凡人飞
发布2020-09-20 20:23:42
7000
发布2020-09-20 20:23:42
举报
文章被收录于专栏:指缝阳光指缝阳光

一、搭建项目架构

  1. 使用idea需要安装actiBPM插件用来画流程图
  2. 创建一个空的java项目,并添加文件夹如下:
项目包
项目包

lib:存放需要使用的jar包,可从下面链接直接下载解压,记得加入将包加入项目中,如下: jar包提取码:c0zq

在这里插入图片描述
在这里插入图片描述

resource:存放资源文件,比如bpmn流程文件等

  1. 新建一个流程first.bpmn
流程
流程
  1. 添加log4j.properties文件,配置日志log4j.rootLogger=INFO, stdout # Console Appender log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n # Custom tweaks log4j.logger.com.codahale.metrics=WARN log4j.logger.com.ryantenney=WARN log4j.logger.com.zaxxer=WARN log4j.logger.org.apache=WARN log4j.logger.org.hibernate=WARN log4j.logger.org.hibernate.engine.internal=WARN log4j.logger.org.hibernate.validator=WARN log4j.logger.org.springframework=WARN log4j.logger.org.springframework.web=WARN log4j.logger.org.springframework.security=WARN
  2. 引入activiti的配置文件activiti.cfg.xml 可从官网复制:activiti.cfg.xml 修改如下:<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"> <!--如果mysql是8.0,需要自己引用对应的mysql-connector-java-8.0.16.jar,并在连接上加上时区如下--> <!--<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC" />--> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?characterEncoding=utf-8&amp;useUnicode=true&amp;useSSL=true" /> <property name="jdbcDriver" value="com.mysql.jdbc.Driver" /> <property name="jdbcUsername" value="root" /> <property name="jdbcPassword" value="123456" /> <property name="databaseSchemaUpdate" value="true" /> <!--以下注释掉--> <!-- <property name="asyncExecutorActivate" value="false" />--> <!-- <property name="mailServerHost" value="mail.my-corp.com" />--> <!-- <property name="mailServerPort" value="5025" />--> </bean> </beans>
  3. 创建对应的数据库
数据库
数据库

二、解决IDEA中Activiti的中文乱码

  1. 进入idea的安装目录
在这里插入图片描述
在这里插入图片描述
  1. 打开这两个文件,在最后面添加一行-Dfile.encoding=UTF-8
  2. 重启IDEA即可。

三、编码

  1. 在src对应目录下创建类:ActivitiTest,编码如下package com.xjf.c3; /*注意导入activiti6.0的包*/ import org.activiti.engine.*; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; /** * @Auther: XuJiaFei * @Date: 2019/11/8 09:49 * @Description: */ public class ActivitiTest { public static void main(String[] args) { //获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); //存储服务 RepositoryService repositoryService = processEngine.getRepositoryService(); //运行服务 RuntimeService runtimeService = processEngine.getRuntimeService(); //任务服务 TaskService taskService = processEngine.getTaskService(); //发布流程 repositoryService.createDeployment().addClasspathResource("first.bpmn").deploy(); //创建一个请假流程,获取流程实例。此处的流程id为first.bpmn的process的id ProcessInstance pi = runtimeService.startProcessInstanceByKey("myProcess_1"); //员工完成请假的任务 Task task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); System.out.println("当前流程节点:" + task.getName()); taskService.complete(task.getId()); //经理完成审批任务 task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); System.out.println("当前流程节点:" + task.getName()); taskService.complete(task.getId()); //流程执行完了,再去获取任务会为null task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult(); System.out.println("流程执行结束了:" + task); //关闭引擎 processEngine.close(); //退出 System.exit(0); } }

注意

  1. runtimeService.startProcessInstanceByKey(“myProcess_1”)对应的key,是first.bpmn中的,在idea中将first.bpmn重命名为first.xml,能看到对应的xml
first.xml
first.xml

千万注意将process后面的 xmlns=" " 去掉,不然会启动失败

  1. 运行后数据库会生成28张表
28张表
28张表

四、结果

结果
结果

该流程模拟实现了员工进行请假,然后经理进行审批的流程。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、搭建项目架构
  • 二、解决IDEA中Activiti的中文乱码
  • 三、编码
  • 四、结果
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com