Activiti工作流从入门到入土:入门实例

阅读更多

文章源码托管:https://github.com/OUYANGSIHAI/Activiti-learninig
欢迎 star !!!

一、前言

在上一节中我们对activiti进行了基本的介绍activiti进行了基本的介绍,同时介绍了基本的概念。

这一节,我将用一个入门程序,介绍如何使用activiti。

二、环境准备

2.1、编译器选择

这里我们使用Idea进行工作流开发,虽然Idea对于工作流的友好度不是很好,因为会有一些小的bug,但是,Idea对于Java的开发还是非常的好的。

在用Idea开发之前,我们需要在idea中安装bpmn开发的插件。方法如下

打开设置

图片.png

选择plugins

图片.png

搜索actiBPM

图片.png

重启idea,新建文件

如果能够找到下面的创建方法,就代表成功了。

图片.png

新建后出现下面的编辑页面

图片.png

到现在,bpmn编辑插件就准备好了。

2.2、其他环境准备

  • JDK:1.8
  • 数据库:mysql5.7
  • activiti jar包:使用maven依赖

三、入门程序

3.1、新建maven项目

新建的maven项目目录如下

图片.png

3.2、添加pom依赖

这里需要的pom依赖有以下几个:junit、druid、mysql、lombok(日志)、activiti



<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.sihaigroupId>
    <artifactId>acitvitiDemoartifactId>
    <version>1.0-SNAPSHOTversion>


    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <maven.compiler.source>1.8maven.compiler.source>
        <maven.compiler.target>1.8maven.compiler.target>
    properties>

    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>testscope>
        dependency>

        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
            <version>1.1.12version>
        dependency>

        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.30version>
        dependency>

        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>1.16.12version>
        dependency>

        
        <dependency>
            <groupId>ch.qos.logbackgroupId>
            <artifactId>logback-coreartifactId>
            <version>1.1.8version>
        dependency>
        <dependency>
            <groupId>ch.qos.logbackgroupId>
            <artifactId>logback-classicartifactId>
            <version>1.1.8version>
        dependency>
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>1.7.22version>
        dependency>

        <dependency>
            <groupId>org.activitigroupId>
            <artifactId>activiti-engineartifactId>
            <version>5.22.0version>
        dependency>
    dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-compiler-pluginartifactId>
                    <configuration>
                        <source>1.8source>
                        <target>1.8target>
                    configuration>
                plugin>
            plugins>
        pluginManagement>
    build>
project>

3.3、日志配置文件


<configuration scan="true" scanPeriod="60 seconds">

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%npattern>
        encoder>
    appender>

    
    
    
    
    
    
    
    
    
    
    
    
    

    
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
    root>

configuration>

3.4、测试实例

下面是添加一个junit测试实例,通过测试生成activiti底层需要的数据库表,总共有25张,如果数据库生成了25张表结构,则说明成功!

/**
 * @Author ouyangsihai
 * @Description 生成activiti底层数据库表结构
 * @Date 16:24 2019/1/26
 * @Param
 * @return
 **/
public class Activiti_01 {
    /**
     * @return void
     * @Author ouyangsihai
     * @Description //生成数据库表结构
     * @Date 20:57 2018/12/5
     * @Param []
     **/
    @Test
    public void test_createDatabase() {
        // 创建流程引擎配置信息对象
        ProcessEngineConfiguration pec = ProcessEngineConfiguration
                .createStandaloneProcessEngineConfiguration();
        // 设置数据库的类型
        pec.setDatabaseType("mysql");
        // 设置创建数据库的方式
//        ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE(true);//如果没有数据库表就会创建数据库表,有的话就修改表结构.
        // ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE(false): 不会创建数据库表
        // ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP(create-drop): 先创建、再删除.
        pec.setDatabaseSchemaUpdate("true");
        // 设置数据库驱动
        pec.setJdbcDriver("com.mysql.jdbc.Driver");
        // 设置jdbcURL
        pec.setJdbcUrl("jdbc:mysql://localhost:3306/activitiTest?useUnicode=true&characterEncoding=UTF-8");
        // 设置用户名
        pec.setJdbcUsername("root");
        // 设置密码

        pec.setJdbcPassword("root");

        pec.setJdbcPassword("XXXX");

        // 构建流程引擎对象
        ProcessEngine pe = pec.buildProcessEngine(); // 调用访方法才会创建数据表
        // 调用close方法时,才会删除
        pe.close();
    }
}

3.5、运行测试实例

运行上面的测试实例后,将会生成下面的25张表结构。

日志信息

图片.png

表结构

图片.png

四、总结

通过上面是入门实例,就将activiti的环境准备好了!

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号好好学java,获取优质学习资源。

你可能感兴趣的:(activit)