Activiti(一)SpringBoot2集成Activiti6
Activiti是领先的轻量级的,以Java为中心的开源BPMN(Business Process Modeling Notation)引擎,实现了真正的流程自动化。下面介绍如何在SpringBoot环境下使用Maven集成Activiti6,来实现流程开发。
添加依赖
添加Processes目录 SpringBoot集成activiti默认会从classpath下的processes目录下读取流程定义文件,所以需要在src/main/resources目录下添加processes目录,并在目录中创建流程文件,添加目录后,目录结构变为:
org.activiti
activiti-spring-boot-starter-basic
6.0.0
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-jdbc
文章图片
如果没有processes目录,则需要修改配置spring.activiti.process-definition-location-prefix,指定流程文件存放目录。
Spring集成Activiti6默认支持**.bpmn20.xml和**.bpmn格式的流程定义文件,修改支持的文件格式,通过配置spring.activiti.process-definition-location-suffixes修改
如:
spring:启动项目时,如果没有流程部署,就不能通过自动注入,使用RuntimeService等API,依赖注入时后报错。
activiti:
check-process-definitions: true #自动检查、部署流程定义文件
database-schema-update: true #自动更新数据库结构
process-definition-location-prefix: classpath:/processes/ #流程定义文件存放目录
#process-definition-location-suffixes: #流程文件格式
#- **.bpmn20.xml
#- **.bpmn
ActivitiProperties中定义了activiti的自动配置项,其他配置请查看ActivitiProperties属性。
添加数据源 添加数据源,项目中添加数据源,初始化数据库结构,后续保存流程数据,
spring :添加流程 在项目中添加流程,创建文件simple.bpmn,添加内容
#data source config
datasource :
driver : com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.105.10:3306/test_db?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true
username : root
password : mysql
initsize : 10
maxActive : 20
minIdle : 10
maxWait : 120000
poolPreparedStatements : false
maxOpenPreparedStatements : -1
validationQuery : select 1
testOnborrow : true
testOnReturn : true
testWhileIdle : true
timeBetweenEvictionRunsMillis : 120000
filters : log4j,stat
启动测试 编写SpringBoot启动类,启动项目,启动项目。
@SpringBootApplication(scanBasePackages = "com.legao.server")启动时,发现启动报错,
@EnableSwagger2
public class WorkflowServer {
public static void main(String[] args) {
SpringApplication.run(WorkflowServer.class, args);
}
}
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
查看activiti-spring-boot-starter-basic-6.0.0.jar发现,org.activiti.spring.boot.SecurityAutoConfiguration编译报错,这时候将SecurityAutoConfiguration排除到SpringBoot启动之外,即@SpringBootApplication注解添加exclude = SecurityAutoConfiguration.class属性
@SpringBootApplication(scanBasePackages = "com.legao.server", exclude = SecurityAutoConfiguration.class)再启动发现启动正常,这时候SpringBoot集成activiti已经启动成功,查看数据库,Activiti6运行所需的28张表也已经创建成功。
@EnableSwagger2
public class WorkflowServer {
public static void main(String[] args) {
SpringApplication.run(WorkflowServer.class, args);
}
}
ACT_EVT_LOGidea上activiti插件的安装及使用 首先下载activti插件- actiBPM
ACT_GE_BYTEARRAY
ACT_GE_PROPERTY
ACT_HI_ACTINST
ACT_HI_ATTACHMENT
ACT_HI_COMMENT
ACT_HI_DETAIL
ACT_HI_IDENTITYLINK
ACT_HI_PROCINST
ACT_HI_TASKINST
ACT_HI_VARINST
ACT_ID_GROUP
ACT_ID_INFO
ACT_ID_MEMBERSHIP
ACT_ID_USER
ACT_PROCDEF_INFO
ACT_RE_DEPLOYMENT
ACT_RE_MODEL
ACT_RE_PROCDEF
ACT_RU_DEADLETTER_JOB
ACT_RU_EVENT_SUBSCR
ACT_RU_EXECUTION
ACT_RU_IDENTITYLINK
ACT_RU_JOB
ACT_RU_SUSPENDED_JOB
ACT_RU_TASK
ACT_RU_TIMER_JOB
ACT_RU_VARIABLE
File - settings-plugins-Browse-Repositories 搜索 actiBPM双击搜索结果或点击Install plugin安装
IDEA Activiti Designer插件---actiBPM汉字乱码问题
idea 安转activiti插件后,编辑流程图发现保存后中文乱码,并且idea的字符集(Settings—>Editor—>File Encodings)已经设置为UTF-8,流程图中中文仍然是乱码,如下图所示:
文章图片
2、解决此问题,需要修改idea源字符集,修改方法如下:
找到idea安装目录bin目录下如下图所示两个文件:
文章图片
【Activiti(一)SpringBoot2集成Activiti6】用编辑器打开,在文件末尾添加:
-Dfile.encoding=UTF-8然后重启idea,再打开流程图就会发现中文已经可以正常显示了:
文章图片
idea actiBPM插件生成png文件 (解决没有Diagrams或Designer选项问题)
之前在网上看到一种解决办法:
先将bpmn文件修改成xml文件我试了一下,但是在xml文件右键菜单中并没有找到Diagrams选项。
然后右键点这个xml文件,在选项中选择diagrams,然后选择show Designer
就可以看到流程图,然后Export to file保存png文件。
文章图片
后来找到问题所在,原来是因为有一个jbpm2.0的插件没有开启
文章图片
开了这个插件后,果然xml右键菜单显示有Diagrams或Designer选项了
文章图片
点开后,显示流程图,点击Export to file导出png
文章图片
成功导出!
文章图片
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 一个人的碎碎念
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 第326天
- Y房东的后半生14
- 奔向你的城市