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

作者 : 开心源码 本文共4572个字,预计阅读时间需要12分钟 发布时间: 2022-05-12 共176人阅读

一、前言

在上一节中我们对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

<?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

四、总结

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

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Activiti工作流从入门到入土:入门实例

发表回复