【1】初识activiti

1.1. 工作流与工作流引擎

工作流工作流(workflow)就是工作流程的计算模型,将部分或者全部的工作流程、逻辑让计算机帮你来处理,实现自动化

工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。

1.2. BPMN2.0规范

BPMN --业务流程模型与符号。

BPMN是一套流程建模的标准,主要目标是被所有业务用户容易理解的符号,支持从创建流程轮廓的业务分析到这些流程的最终实现,知道最终用户的管理监控。

通俗一点其实就是一套规范,画流程模型的规范。流程模型包括:流程图、协作图、编排图、会话图

【2】activiti概述

Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。其核心是基于 JAVA 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。

Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。

【3】activiti的使用

准备

activiti整合eclipse插件

线上安装地址是:

【4】代码

  1.1  pom.xml文件配置

   <project xmlns="" xmlns:xsi="" xsi:schemaLocation=" ">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.activiti</groupId>

  <artifactId>activiti-examples</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <parent>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-parent</artifactId>

           <version>2.1.0.RELEASE</version>

           <relativePath/> <!-- lookup parent from repository -->

 </parent>

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <java.version>1.8</java.version>

  </properties>

  <dependencies>

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-engine</artifactId>

            <version>7-201802-EA</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-jpa</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <scope>runtime</scope>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

    </dependencies>

</project>

1.2  ActivitiConfig.java

/**

 * 使用Java类完成配置文件

 *

 * @author 架构师那些事

 */

@Configuration

public class ActivitiConfig {

     @Autowired

     private DataSource dataSource;

     /**

      * 初始化配置,将创建25张表

      *

      * @return

      */

     @Bean

     public StandaloneProcessEngineConfiguration processEngineConfiguration() {

           StandaloneProcessEngineConfiguration configuration = new StandaloneProcessEngineConfiguration();

           configuration.setDataSource(dataSource);

           configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

           configuration.setAsyncExecutorActivate(false);

           return configuration;

     }

    /**

     * 创建引擎

     * @return ProcessEngine

     */

     @Bean

     public ProcessEngine processEngine() {

           return processEngineConfiguration().buildProcessEngine();

     }

}

1.3 application.yml 文件中配置mysql数据源

spring:

  datasource:

    url: jdbc:mysql://localhost:3306/activiti?useSSL=true&characterEncoding=UTF-8&serverTimezone=UTC&nullCatalogMeansCurrent=true

    username: root

    password: 123456

  activiti:

    check-process-definitions: false

    database-schema-update: true

1.4 在本地创建数据库名为 activiti

1.5  ActivitiApplication.java 文件

@SpringBootApplication

public class ActivitiApplication {

    public static void main(String[] args) {

        SpringApplication.run(ActivitiApplication.class, args);

    }

}

【5】启动项目,Activiti引擎将自动帮你创建25张表 如下图:

image.png

完毕,谢谢~~