您的位置:首页 > 编程语言 > Java开发

Activiti与SpringBoot项目整合

2018-03-14 16:34 453 查看

1.添加activiti-spring-boot-starter-basic依赖

<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.21.0</version>
</dependency>

2.编写ActivitiConfig类

         配置 org.activiti.spring.SpringProcessEngineConfiguration类注入数据源和事务模板管理事务@Configuration
public class ActivitiConfig extends AbstractProcessEngineAutoConfiguration {

// 注入数据源和事务管理器
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration(
@Qualifier("dataSourceSyDev") DataSource dataSource,
@Qualifier("transactionManager") PlatformTransactionManager transactionManager,
SpringAsyncExecutor springAsyncExecutor) throws IOException {
return this.baseSpringProcessEngineConfiguration(dataSource, transactionManager, springAsyncExecutor);
}
}

3.编写ActivitiTest进行部署测试。

    注:(若不指定路径,默认去资源目录下的processes文件夹寻找xxx.bpmn和xxx.png资源部署)
@RunWith(SpringRunner.class)
@SpringBootTest
public class ActivitiTest {
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private IdentityService identityService;
@Autowired
private TaskService taskService;
@Autowired
private HistoryService historyService;
@Autowired
private ProcessEngineConfigurationImpl processEngineConfiguration;

/**
* 布置流程 (操作数据表 act_re_deployment,act_re_procdef,act_ge_bytearray
*
*/
@Test
public void createDeployment() {
DeploymentBuilder builder = repositoryService.createDeployment();
builder.addClasspathResource("processes/MyProcess.bpmn");
builder.addClasspathResource("processes/MyProcess.png");
Deployment deploy = builder.deploy();
System.out.println("布署id=" + deploy.getId());
}
}

4.zip方式进行动态部署

/**
* 部署流程定义使用zip方式 (操作数据表 act_re_deployment,act_re_procdef,act_ge_bytearray
*
*/
@Test
public void createDeploymentByZip() {

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("processes/MyProcess.zip"); // 获取指定文件资源流

ZipInputStream zipInputStream = new ZipInputStream(inputStream); // 实例化zip输入流对象

// 获取部署对象
Deployment deployment = repositoryService.createDeployment() // 创建部署
.name("审批流程") // 流程名称
.addZipInputStream(zipInputStream) // 添加zip是输入流
.deploy(); // 部署
System.out.println("流程部署ID=" + deployment.getId() + ",流程部署Name=" + deployment.getName());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: