spring boot activiti 整合

1.pom.xml

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

2. resources目录下新建processes文件夹放一个xxx.bpmn流程文件

3. java config方式配置:config.activiti下新建一个类ActivitiConfig:

其中数据源和事务管理器在3.spring boot mybatis druid多数据源里已经配置完,直接引用名字注入就可以了.

package com.yunchuang.config.activiti;
import org.activiti.spring.SpringAsyncExecutor;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.activiti.spring.boot.AbstractProcessEngineAutoConfiguration;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
import java.io.IOException;
/**
 * activiti配置文件
 * AbstractProcessEngineAutoConfiguration在activiti-spring-boot-starter-basic下
 *
 * @author 尹冬飞
 * @create 2017-04-10 10:30
 */
@Configuration
public class ActivitiConfig extends AbstractProcessEngineAutoConfiguration {
    static final String NAME = "master";
    //注入数据源和事务管理器
    @Bean
    public SpringProcessEngineConfiguration springProcessEngineConfiguration(
            @Qualifier(NAME + "DataSource") DataSource dataSource,
            @Qualifier(NAME + "TransactionManager") PlatformTransactionManager transactionManager,
            SpringAsyncExecutor springAsyncExecutor) throws IOException {
        return this.baseSpringProcessEngineConfiguration(dataSource, transactionManager, springAsyncExecutor);
    }
}

4.这样就可以直接调用相关的service了.测试代码:

package com.yunchuang;
import org.activiti.engine.RuntimeService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class Demo8ApplicationTests {
    @Autowired
    RuntimeService runtimeService;
    @Test
    public void contextLoads() {
        long count = runtimeService.createProcessInstanceQuery()
                .count();
        System.out.println(count);
    }
}
原文地址:https://www.jianshu.com/p/6c9882693f35

猜你喜欢

转载自www.cnblogs.com/jpfss/p/11084497.html