Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activi。。。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Activiti⼯作流框架学习笔记(⼆)之springboot2.0整合⼯作流
Activi。
以前在⼯作当中做过不少与⼯作流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 @Configuration
2 public class Activiticonfig {
3
4 /**
5 * 流程实例类,启动流程时创建
6 * @return
7 */
8 @Bean
9 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⼯作流引擎做更多操作实践。