1, pom引入activiti
<!-- activiti -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M2</version>
<exclusions>
<exclusion>
<artifactId>mybatis</artifactId>
<groupId>org.mybatis</groupId>
</exclusion>
<exclusion>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- activiti生成图片 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>7.1.0.M6</version>
</dependency>
因为我集成的框架中已经使用了mybatis,所以要去除掉mybatis依赖
2, yml文件
activiti:
database-schema-update: true #自动创建表
check-process-definitions: true #自动搜索流程文件
process-definition-location-prefix: classpath:/process/ #流程文件
history-level: full #全量历史
3,排除自动部署的文件
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
我使用的是shiro,没有使用Security直接排除掉
此时启动就可以自动创建activiti需要的表了
多数据源问题
一种是用注解@Primary
一种是config配置
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration(
PlatformTransactionManager transactionManager,
SpringAsyncExecutor springAsyncExecutor) throws IOException {
SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
config.setDataSource(slaveDataSource(new DruidProperties()));//注入你需要的数据源
config.setTransactionManager(transactionManager);
config.setAsyncExecutor(springAsyncExecutor);
config.setDatabaseSchemaUpdate("true");
Resource[] resources = null;
// 启动自动部署流程 //此处是我项目不能自动部署文件的问题
try {
resources = new PathMatchingResourcePatternResolver().getResources("classpath*:process/*.bpmn");
} catch (IOException e) {
e.printStackTrace();
}
config.setDeploymentResources(resources);
return config;
}