若依整合activiti -- activiti工作流養(yǎng)成計劃(五)

目標(biāo):若依整合activiti6

好的,上邊4篇,算是基礎(chǔ)環(huán)境的準(zhǔn)備,這篇開始終于進(jìn)入了主題,開始整合activiti。

一、首先在根目錄pom文件中聲明activiti依賴,但是要移除activiti中的mybatis依賴,因?yàn)橐呀?jīng)升級成mybatis-plus了,不清楚的往前翻一翻了解一下來龍去脈。

image.png
image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

?5、修改RuoYiApplication.java文件

image.png

?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開頭的表

image.png

四、下面加點(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)建流程文件(流程文件自己想辦法搞一個,或者去我碼云上下載)

image.png

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

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

image.png
image.png

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容