序言
工作流框架基本上是每個(gè)比較復(fù)雜的OA或ERP系統(tǒng)的標(biāo)配,同時(shí)Activiti又是國內(nèi)使用最普遍的工作流框架。于是就想著把Activiti整理一下。
由于現(xiàn)在的項(xiàng)目越來越多的使用springboot,因?yàn)樗糜昧耍绻俜剿f'開箱即用',零配置,敏捷開發(fā)的利器啊。應(yīng)運(yùn)而生,activiti-spring這樣的插件就出現(xiàn)了。注意事項(xiàng):使用activiti-spring一定要注意與springboot的適配,下面推薦的版本經(jīng)試驗(yàn)無誤。
Spring Boot 2.0 集成 Activiti 6.0
廢話不多說上代碼:
1、pom.xml
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>6.0.0</version>
</dependency>
2、新建activiti配置文件ActivitiConfig.java
@Configuration
public class ActivitiConfiguration {
@Autowired
private DataSource dataSource;
@Autowired
private PlatformTransactionManager platformTransactionManager;
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration(){
SpringProcessEngineConfiguration spec = new SpringProcessEngineConfiguration();
spec.setDataSource(dataSource);
spec.setTransactionManager(platformTransactionManager);
spec.setDatabaseSchemaUpdate("true");
// 啟動(dòng)自動(dòng)部署流程
Resource[] resources = null;
try {
resources = new PathMatchingResourcePatternResolver().getResources("classpath*:bpmn/*.bpmn");
} catch (IOException e) {
e.printStackTrace();
}
spec.setDeploymentResources(resources);
return spec;
}
@Bean
public ProcessEngineFactoryBean processEngine(){
ProcessEngineFactoryBean processEngineFactoryBean = new ProcessEngineFactoryBean();
processEngineFactoryBean.setProcessEngineConfiguration(springProcessEngineConfiguration());
return processEngineFactoryBean;
}
@Bean
public RepositoryService repositoryService() throws Exception{
return processEngine().getObject().getRepositoryService();
}
@Bean
public RuntimeService runtimeService() throws Exception{
return processEngine().getObject().getRuntimeService();
}
@Bean
public TaskService taskService() throws Exception{
return processEngine().getObject().getTaskService();
}
@Bean
public HistoryService historyService() throws Exception{
return processEngine().getObject().getHistoryService();
}
}
集成完畢!