`
SIHAIloveYAN
  • 浏览: 112570 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

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

    博客分类:
  • java
阅读更多

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

一、前言

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

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

二、环境准备

2.1、编译器选择

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

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

打开设置

图片.png图片.png

选择plugins

图片.png图片.png

搜索actiBPM

图片.png图片.png

重启idea,新建文件

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

图片.png图片.png

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

图片.png图片.png

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

2.2、其他环境准备

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

三、入门程序

3.1、新建maven项目

新建的maven项目目录如下

图片.png图片.png

3.2、添加pom依赖

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

<?xml version="1.0" encoding="UTF-8"?>

<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.0</modelVersion>

    <groupId>com.sihai</groupId>
    <artifactId>acitvitiDemo</artifactId>
    <version>1.0-SNAPSHOT</version>


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

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>

        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.30</version>
        </dependency>

        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.12</version>
        </dependency>

        <!-- logback -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.1.8</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.8</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.22</version>
        </dependency>

        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>5.22.0</version>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

3.3、日志配置文件

<?xml version="1.0" encoding="UTF-8"?>
<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%n</pattern>
        </encoder>
    </appender>

    <!--<appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--<file>${catalina.home}/logs/permission.log</file>-->
    <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
    <!--<FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>-->
    <!--</rollingPolicy>-->
    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
    <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>-->
    <!--</layout>-->
    <!--</appender>-->
    <!---->
    <!--<logger name="xxx" level="INFO">-->
    <!--<appender-ref ref="permission"/>-->
    <!--</logger>-->

    <!-- TRACE < DEBUG < INFO < WARN < ERROR -->
    <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

表结构

图片.png图片.png

四、总结

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

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

分享到:
评论

相关推荐

    activiti工作流(超详细)

    activiti工作流文档,超详细,从0基础开始入门,包括数据库介绍、核心api等介绍,满足日常开发所需

    Activiti工作流引擎入门

    activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN进行定义,业务流程按照预先定义的流程进行执行。实现了系统的流程由activiti进行管理,减少业务系统由于流程变更进行...

    activiti 工作流23张表详细介绍

    activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细...

    springmvc+Mybatis+activiti5

    此项目为springmvc、Mybatis、EHcache、maven、Spring security3、activiti5工作流的整合 是一个基于数据库的权限管理demo项目、使用mysql数据库 项目运行前需要构建maven私服 而且有些jar包私服中肯定没有,需要...

    Activiti工作流面试相关知识

    Activiti 工作流面试相关知识 RepositoryService、RuntimeService、TaskService、HistoryService分别表示什么操作

    activiti工作流实例

    activiti工作流实例,网上activiti的实例很少最近本人做了一个例子供大家参考

    activiti工作流实例代码

    activiti工作流实例,实例化、获取任务、完成任务、任务跟踪、历史任务

    Activiti工作流教程

    Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程

    Activiti工作流课程

    Activiti工作流课程Activiti工作流课程Activiti工作流课程

    activiti工作流PPT

    activiti工作流的 PPT 大致讲了一下activiti的常用API

    Activiti工作流视频(企业开发实例讲解)

    传智播客_Activiti工作流视频(企业开发实例讲解)传智播客_Activiti工作流视频(企业开发实例讲解)传智播客_Activiti工作流视频(企业开发实例讲解)

    Activiti工作流引擎实战入门

    Activiti工作流引擎实战入门 Activiti入门 Activiti7概述 Activiti流程操作 流程实例 任务分配 流程变量 任务组 网关

    activiti工作流课程

    activiti工作流课程

    Activiti6.0工作流引擎入门Demo

    Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程由activiti进行管理,减少业务系统由于...

    Activiti工作流使用手册操作文档

    Activiti工作流使用手册_acticiti工作流操作手册文档V1.1操作教程手册 解决java开发使用Activiti遇到的问题和使用组件的讲解

    Activiti工作流示例源码

    Activiti工作流示例ActivitiDemo 本示例带有全部源码,详细使用Canvas动画演示了Activiti工作流引擎的使用.

    Activiti工作流黑马教程.doc

    activiti工作流视频课程文档,非常实用,activiti入门课程

    Activiti工作流详细讲解完整教程.pdf

    Activiti工作流详细讲解完整教程.pdf

    Activiti工作流源码简单入门案例

    Activiti工作流源码,简单入门案例,适合新手了解Activiti的工作流程。

    Activiti工作流数据库表结构

    1.2.1 Activiti数据表清单: 3 1.2.2 表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源) 3 1.2.4 表名:ACT_HI_ACTINST (历史节点表) 5 1.2.3 表名:ACT_GE_PROPERTY (系统相关属性) 4 1.2.5 表名:ACT_HI_...

Global site tag (gtag.js) - Google Analytics