一:activiti简介

 

二:activiti使用

 1.IDEA使用activiti 插件(用于绘制流程图)

  在IDEA安装activiti插件

  

 

  在resource目录下新建actiBPM文件

  

  绘制*.bpmn文件:

  

  改名为*.xml文件,并打开:

  

  生成*.png图片:

  

 

 2.示例springboot集成activiti

  添加数据库连接配置:

spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://172.18.179.131:3306/mysql
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

  添加pom依赖:

<!--activiti依赖-->
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring</artifactId>
    <version>6.0.0</version>
</dependency>
<!--mysql驱动依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
</dependency>
<!--连接池依赖-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.19</version>
</dependency>

  添加数据库连接池初始化:

package com.zcx.springstudy.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;

@Configuration
public class DruidConfiguration { @Autowired Environment env; /** * 数据源:配置DruidDataSource * @return */ @Bean public DataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setUrl(env.getProperty("spring.datasource.url")); ds.setDriverClassName(env.getProperty("spring.datasource.driverClassName")); ds.setPassword(env.getProperty("spring.datasource.password")); ds.setUsername(env.getProperty("spring.datasource.username")); ds.setInitialSize(2);//初始化时建立物理连接的个数 ds.setMaxActive(20);//最大连接池数量 ds.setMinIdle(0);//最小连接池数量 ds.setMaxWait(60000);//获取连接时最大等待时间,单位毫秒。 ds.setValidationQuery("SELECT 1");//用来检测连接是否有效的sql ds.setTestOnBorrow(false);//申请连接时执行validationQuery检测连接是否有效 ds.setTestWhileIdle(true);//建议配置为true,不影响性能,并且保证安全性。 ds.setPoolPreparedStatements(false);//是否缓存preparedStatement,也就是PSCache return ds; } /** * 事务:配置DataSourceTransactionManager * @param dataSource * @return */ @Bean("dataSourceTransactionManager") public DataSourceTransactionManager dataSourceTransactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } }

  添加acitiviti引擎及自动部署:

package com.zcx.springstudy.config;

import org.activiti.engine.*;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;
import java.io.IOException;

@Configuration
public class ActivitiConfuguration {
    @Bean
    public ProcessEngine processEngine(DataSourceTransactionManager transactionManager, DataSource dataSource) throws IOException {
        SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration();
        //自动部署已有的流程文件
        Resource[] resources = new PathMatchingResourcePatternResolver().getResources(ResourceLoader.CLASSPATH_URL_PREFIX + "diagrams/*.png");
        configuration.setTransactionManager(transactionManager);
        configuration.setDataSource(dataSource);
        configuration.setDatabaseSchemaUpdate("true");
        configuration.setDeploymentResources(resources);
        configuration.setDbIdentityUsed(false);
        return configuration.buildProcessEngine();
    }

    @Bean
    public RepositoryService repositoryService(ProcessEngine processEngine) {
        return processEngine.getRepositoryService();
    }

    @Bean
    public RuntimeService runtimeService(ProcessEngine processEngine) {
        return processEngine.getRuntimeService();
    }

    @Bean
    public TaskService taskService(ProcessEngine processEngine) {
        return processEngine.getTaskService();
    }

    @Bean
    public HistoryService historyService(ProcessEngine processEngine) {
        return processEngine.getHistoryService();
    }

    @Bean
    public ManagementService managementService(ProcessEngine processEngine) {
        return processEngine.getManagementService();
    }

    @Bean
    public IdentityService identityService(ProcessEngine processEngine) {
        return processEngine.getIdentityService();
    }
}

  启动类:

package com.zcx.springstudy;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
@MapperScan("com.zcx.springstudy")
public class SpringStudyApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringStudyApplication.class, args);
    }

}

  启动类:

 1.IDEA添加activiti 插件

 

posted on 2019-07-17 16:30  chunxiaozhang  阅读(889)  评论(1编辑  收藏  举报