Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0

本文主要是介绍Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文/朱季谦

以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基于先前的工作经验,决定用较新版本的技术来重新梳理下以前接触过的技术。

决定用springboot2.0+Activiti6.0来做实践总结。

第一步,在springboot项目pom.xml文件引入相关依赖:

 1 <!--Activiti 工作流-->2 <dependency>3     <groupId>mysql</groupId>4     <artifactId>mysql-connector-java</artifactId>5     <scope>5.1.35</scope>6 </dependency>7 8 <dependency>9     <groupId>org.activiti</groupId>
10     <artifactId>activiti-spring</artifactId>
11     <version>6.0.0</version>
12 </dependency>
13 
14 <dependency>
15     <groupId>com.fasterxml.jackson.core</groupId>
16     <artifactId>jackson-core</artifactId>
17     <version>2.9.5</version>
18 </dependency>

第二步,建立Activiti的配置类

 1 @Configuration2 public class Activiticonfig {3 4     /**5      * 流程实例类,启动流程时创建6      * @return7      */8     @Bean9     public ProcessEngine processEngine(){
10           ProcessEngineConfiguration pro=ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
11           pro.setJdbcDriver("com.mysql.jdbc.Driver");
12           pro.setJdbcUrl("jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC&nullCatalogMeansCurrent=true");
13           pro.setJdbcUsername("root");
14           pro.setJdbcPassword("root");
15           //避免发布的图片和xml中文出现乱码
16           pro.setActivityFontName("宋体");
17           pro.setLabelFontName("宋体");
18           pro.setAnnotationFontName("宋体");
19           pro.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
20           return pro.buildProcessEngine();
21     }
22 
23 
24     /**
25      * 仓库服务类,用于管理bpmn文件与流程图片
26      * @return
27      */
28     @Bean
29     public RepositoryService repositoryService(){
30         return processEngine().getRepositoryService();
31     }
32 
33     /**
34      * 流程运行服务类,用于获取流程执行相关信息
35      * @return
36      */
37     @Bean
38     public RuntimeService runtimeService(){
39         return processEngine().getRuntimeService();
40     }
41 
42     /**
43      * 任务服务类,用户获取任务信息
44      * @return
45      */
46     @Bean
47     public TaskService taskService(){
48         return processEngine().getTaskService();
49     }
50 
51 
52     /**
53      * 获取正在运行或已经完成的流程实例历史信息
54      * @return
55      */
56     @Bean
57     public HistoryService historyService(){
58         return processEngine().getHistoryService();
59     }
60 
61     /**
62      * 流程引擎的管理与维护
63      * @return
64      */
65     @Bean
66     public ManagementService managementService(){
67         return processEngine().getManagementService();
68     }
69 
70     /**
71      * 创建、更新、删除,查询群组和用户
72      * @return
73      */
74     @Bean
75     public IdentityService identityService(){
76         return processEngine().getIdentityService();
77     }
78 
79 }

在springboot工程里简单加完这些配置后,启动项目,原以为可以正常生成Activi6.0工作流自带的28张表,但这时出现了一堆错误:

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table 'example.act_ge_property' doesn't exist
### The error may exist in org/activiti/db/mapping/entity/Property.xml
### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntityImpl.selectProperty-Inline
### The error occurred while setting parameters
### SQL: select * from ACT_GE_PROPERTY where NAME_ = ?
### Cause: java.sql.SQLSyntaxErrorException: Table 'example.act_ge_property' doesn't exist
出现这种问题主要是因为MySql的版本问题,在连接mysql的url后边加一个&nullCatalogMeansCurrent=true即可解决。
再次运行后,成功创建了28张Activiti自带的数据表——

接下来,将基于该搭建,对Activiti工作流引擎做更多操作实践。

这篇关于Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548778

相关文章

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.