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

相关文章

C#实现将Excel工作表拆分为多个窗格

《C#实现将Excel工作表拆分为多个窗格》在日常工作中,我们经常需要处理包含大量数据的Excel文件,本文将深入探讨如何在C#中利用强大的Spire.XLSfor.NET自动化实现Excel工作表的... 目录为什么需要拆分 Excel 窗格借助 Spire.XLS for .NET 实现冻结窗格(Fro

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

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

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