Springboot activiti 整合Demo

Springboot activiti 整合Demo

大家好,又见面了,我是你们的朋友全栈君。

为什么要写这篇 因为刚开始学在网上看了很多 踩了很多坑 最后在一位热心网友的帮助下 我才完成了这次Hello Activiti

最近研究 Activiti 从零开始学,网上资料很多 ,大致看了准备写个Demo,一切的框架从一个Demo开始

因为公司用Springboot搭建的所以我就用 Springboot + Activiti 来写一个Demo

首先是pom.xml

<dependencies>
        <dependency>  
            <groupId>org.mybatis</groupId>  
            <artifactId>mybatis</artifactId>  
            <version>3.4.1</version>  
        </dependency> 
        <dependency>  
            <groupId>org.apache.ibatis</groupId>  
            <artifactId>ibatis-core</artifactId>  
            <version>3.0</version>  
        </dependency> 
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>5.21.0</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</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>

 

properies配置

spring.datasource.url=jdbc:mysql://localhost:3306/activiti-base?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#自动创建、更新、验证数据库表结构
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.show-sql=true

spring.activiti.check-process-definitions=false

然后画一个流程图 我用的是STS 其实就是Eclipse 安装一个Activiti的插件就行(自行百度一下

171914_IB5f_3842181.png

大家注意一下这个文件的路径啊 (一个新手踩过的坑

171845_C4IF_3842181.png

流程图画完了 我们就可以给这个跑起来啦 至于那些接口实现类什么的 我还没看呢 毕竟我也是一个新手

现在告诉大家怎么给这个流程图跑起来

重点来了 我看了那么多博客没有一个告诉我说要先把流程部署起来他才能run

所以我们先部署

在你的测试类中写

@Test
    public void contextLoads() {

        
        // 1. 部署一个流程定义   [我记得是有3种方式]
        
     Deployment deployment =     repositoryService
            .createDeployment()  // 创建一个Deployment
            .name(“test流程”)          // 给流程起的一个名字
            .addClasspathResource(“processes/MyProcess.bpmn”)    // bpmn的路径  你这里没有png图片 ,所以 就用这一个
            .deploy();
        
     System.out.println(“流程部署ID:” +deployment.getId());
     System.out.println(“流程部署时间:” +deployment.getDeploymentTime());
     System.out.println(“流程部署名称:” +deployment.getName());

然后run一下

然后去你的数据库看一下

你会发现多了一些表 这些就是activiti的表

172537_TgAh_3842181.png
     部署完之后你会在 act_re_deployment -> 流程部署表 这个表中发现你部署的项目 就说明你的项目部署上了 现在可以run了

    @Test
    public void startProcessInstance() {

        // ok 部署完成之后让我们启动这个流程

        runtimeService.startProcessInstanceByKey(“myProcess”);  
    }

run完了之后 act_hi_procinst -> 流程实例表 这个表中你可以看见你的流程图run出来的实例

172921_c9nN_3842181.png

172928_f4hF_3842181.png

部署一个流程这个表中就会有一个实例

然后你可以观察一下 act_ru_task -> 任务表(正在执行的任务)、act_ho_taskinst -> 历史任务 这两个任务

历史任务表里已经有了一条记录。但是他的状态是未完成
看正在执行的任务表,里面也有一条数据。这是当前正在执行的任务。

ok 这个小Demo完成了

代码已经放到马云上了 https://gitee.com/mike_liu/Activiti_Demo.git 欢迎大家下载查看

 

转载于:https://my.oschina.net/u/3842181/blog/1799866

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107565.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 绝对成交课程培训_成交的5大关键

    绝对成交课程培训_成交的5大关键影响力集团培训讲师孟昭春http://blog.sina.com.cn/mengzhaochun第一天下午一个思想:把自己能把握的事情把握就能实现把握不了的目标。1.孟老师从自身做法出发讲出:他下面的销售人员问他问题他从来不给答案,只是指墙(墙上有5问5答)。2.大客户特点:金额大、周期比较长、内部决策者多。3.用户的四个拒绝:我不需要、我不着急、我不相信、我没钱。(70%顾客…

    2022年10月24日
    1
  • Linux 常用命令 tar 打包文件夹

    Linux 常用命令 tar 打包文件夹linuxzip压缩。压缩当前文件夹下所有文件,压缩为a.zip。zip-rfileName.zip文件夹名linuxtar打包(可以不压缩哦~)tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。单个文件压缩打包tarczvfmy.tarfile1多个文件压缩打包tarczvfmy.tarfile1file2,…单个目…

    2022年5月6日
    74
  • Nmap命令详解及常用命令总结[通俗易懂]

    Nmap命令详解及常用命令总结[通俗易懂]Nmap学习文章目录Nmap学习0Nmap介绍1Nmap命令详解1.1Nmap命令help详解(内附中文翻译)1.2Nmap命令思维导图2Nmap常见使用场景以及相关命令2.1Nmap常用扫描命令2.1.1扫描固定端口,以sqlServer为例2.1.2获取远程主机的系统类型及开放端口2.1.3列出开放了指定端口的主机列表2.1.4在网络寻找所有在线主机2.1.5…

    2022年5月28日
    111
  • 神经网络的反向传播算法推导

    神经网络的反向传播算法推导有了上一篇神经网络的反向传播算法推导—前期知识准备做铺垫,下一步来看看反向传播算法具体的推导过程。一、定义机器学习中常说的两个函数:损失函数(lossfunction):是定义在单个样本上的,算的是一个样本的值和预测值的误差,记为C(Θ);代价函数(costfunction):是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均,记为J(Θ);假设函数:二、神经网络结构图以三层神经网络为例:…

    2022年5月27日
    27
  • 初识ABP vNext(6):vue+ABP实现国际化

    初识ABP vNext(6):vue+ABP实现国际化

    2020年11月20日
    186
  • zookeeper启动报错出现Starting zookeeper … FAILED TO START详细解决方案

    zookeeper启动报错出现Starting zookeeper … FAILED TO START详细解决方案zookeeper启动时出现/usr/local/apache-zookeeper-3.5.9-bin/bin/../没有权限等问题

    2022年10月19日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号