Activiti流程定义部署ZIP方式

通过Classpath的方式加载资源文件来部署流程定义,这种方式始终有局限性,只能适合小项目固定流程写死的。

实际项目的话,需要使用动态导入流程定义文件,可以通过bpmn和png文件打包成zip压缩包,

然后用户界面直接导入到系统,然后在解析部署流程定义,Activiti插件是支持这种方式的。


把bpmn流程文件和png流程图文件打成zip压缩包,

放到diagrams文件下( 在真实的项目中是通过文件上传实现的):

创建一个新的测试类ActivitHelloWorldZIPTest 其中新建一个deployWithZip()方法用zip方式来实现

  /**
     * 部署流程定义使用zip方式
     */
    @Test
    public void deployWithZip(){
        InputStream inputStream=this.getClass()  // 获取当前class对象
                            .getClassLoader()   // 获取类加载器
                            .getResourceAsStream("diagrams/HelloWorld.zip"); // 获取指定文件资源流
        ZipInputStream zipInputStream=new ZipInputStream(inputStream); // 实例化zip输入流对象
        // 获取部署对象
        Deployment deployment=processEngine.getRepositoryService() // 部署Service
                     .createDeployment()  // 创建部署
                     .name("HelloWorld流程2")  // 流程名称
                     .addZipInputStream(zipInputStream)  // 添加zip是输入流
                     .deploy(); // 部署
        System.out.println("流程部署ID:"+deployment.getId());
        System.out.println("流程部署Name:"+deployment.getName());
    }
运行结果如下:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
流程部署ID:7501
流程部署Name:HelloWorld流程2
已经成功部署流程定义了。

之后仔细观察Activiti25张表中的一些数据变化:

1.act_re_deployment 流程定义部署表

      2.act_re_procdef 流程定义表

      3.act_ge_bytearry 资源文件表

      4.act_ge_property 属性表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值