目標(biāo):若依整合activiti6
好的,上邊4篇,算是基礎(chǔ)環(huán)境的準(zhǔn)備,這篇開始終于進(jìn)入了主題,開始整合activiti。
一、首先在根目錄pom文件中聲明activiti依賴,但是要移除activiti中的mybatis依賴,因?yàn)橐呀?jīng)升級成mybatis-plus了,不清楚的往前翻一翻了解一下來龍去脈。


二、application.yml,添加如下配置,注意這是要配在spring下一層的

三、創(chuàng)建ruoyi-activiti模塊
?1、層級和包的情況如圖

?2、activiti模塊的pom,引入這兩個依賴

?3、根目錄pom,聲明activiti模塊,因?yàn)槠渌K也是做么做的,咱別特立獨(dú)行

?4、admin模塊的pom,引入activiti依賴

?5、修改RuoYiApplication.java文件

?6、運(yùn)行項(xiàng)目,如果提示act_**表不存在的話,在application-druid.yml里url參數(shù)后邊拼上nullCatalogMeansCurrent=true,我的是這樣的
url: jdbc:mysql://localhost:3306/ry_mp_activiti?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
?7、項(xiàng)目運(yùn)行起來不報錯,數(shù)據(jù)庫里會多出28張act開頭的表

四、下面加點(diǎn)代碼試試,看能不能正常用
?1、在activiti模塊的config包里創(chuàng)建ActivitiConfig.java,這是為了注入activiti的api
package com.ruoyi.act.config;
import org.activiti.engine.*;
import org.activiti.spring.ProcessEngineFactoryBean;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
/**
* @author badcat
* @date 2021-08-23 0:22
*/
@Configuration
public class ActivitiConfig {
@Autowired
private DataSource dataSource;
@Autowired
private PlatformTransactionManager platformTransactionManager;
private SpringProcessEngineConfiguration springProcessEngineConfiguration(){
SpringProcessEngineConfiguration spec = new SpringProcessEngineConfiguration();
spec.setDataSource(dataSource);
spec.setTransactionManager(platformTransactionManager);
spec.setDatabaseSchemaUpdate("true");
return spec;
}
private 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();
}
@Bean
public FormService formService() throws Exception{
return processEngine().getObject().getFormService();
}
@Bean
public IdentityService identityService() throws Exception{
return processEngine().getObject().getIdentityService();
}
}
?2、創(chuàng)建一個測試controller寫個部署流程的api
package com.ruoyi.act.controller;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author badcat
* @date 2021-08-23 0:25
*/
@RestController
@RequestMapping("/act")
public class ACT_Test {
@Autowired
private RepositoryService repositoryService;
/**
* 根據(jù)文件路徑部署流程
*/
@GetMapping("/initDeploymentBPMN")
public String initDeploymentBPMN(){
String filename = "BPMN/test.bpmn";
Deployment deployment = this.repositoryService.createDeployment()
.addClasspathResource(filename)
.name("流程部署測試uel_v3")
.deploy();
return deployment.getName();
}
}
?3、創(chuàng)建流程文件(流程文件自己想辦法搞一個,或者去我碼云上下載)

?4、運(yùn)行項(xiàng)目,登錄后訪問http://localhost/act/initDeploymentBPMN,看到如圖所示就說明沒毛病啊老鐵

??再看數(shù)據(jù)庫里,流程資源表、流程部署表、流程定義表都有數(shù)據(jù)了



若依整合activiti工作已完成,這個算是里程碑性質(zhì)了,所以碼云上版本升到2.0吧。
這部分代碼放到了碼云https://gitee.com/study_badcat/ry_mp_activiti,v2.0分支。