写在前面:一直想学习activity工作流,实现一些流程审批功能,今天终于着手开始,在接下来的博客中,会讲解整合步骤及我之后的疑问,也希望路过的大神能指点一下,我会把大神的指点去验证,并将大佬ID及验证结果写在下一篇博客中。
项目架构:jdk1.8+springboot+springcloud+springsecurity+mybatisplus+redis+activity+jwt+mysql
因为是希望在我自己写的demo项目中来学习并集成,所以用到了这些技术,本系列文章将只针对activity来写。
开始集成:
1、集成第一步肯定是导入jar包,项目使用的maven,这里贴出pom:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
为什么会排除mybatis呢,因为项目集成了mybatisplus包含了mybatis-core,activity中又有mybatis-core,启动项目时会报出jar包冲突错误。
2、修改yml文件
spring:
activiti:
database-schema-update: true
history-level: full
db-history-used: true
check-process-definitions: false
async-executor-activate: false
process-definition-location-prefix: classpath:/processes/
a、check-process-definitions默认校验resources下的processes文件夹里的流程文件
b、database-schema数据源指定
c、database-schema-update建表规则
flase: 无表或版本不同,启动会有异常
d、db-history-used检测历史表是否存在
e、history-level记录历史等级
f、async-executor-activate是否流程引擎一启动就激活
3、配置类(注入数据源和事务管理器,这里的数据源可以自己重新定义)
@Configuration
public class ActivitiConfig extends AbstractProcessEngineAutoConfiguration {
//注入数据源和事务管理器
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration(
@Qualifier("dataSource") DataSource dataSource,
@Qualifier("transactionManager") PlatformTransactionManager transactionManager,
SpringAsyncExecutor springAsyncExecutor) throws IOException {
return this.baseSpringProcessEngineConfiguration(dataSource, transactionManager, springAsyncExecutor);
}
}
4、启动类排除security
@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
启动项目后,会自动在当前数据库下新建表
下一文章 将进行使用!!!!!