Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第二节:Activiti6.0配置文件的读取

第二节:Activiti6.0配置文件的读取

作者头像
凡人飞
发布于 2020-09-20 12:23:26
发布于 2020-09-20 12:23:26
93200
代码可运行
举报
文章被收录于专栏:指缝阳光指缝阳光
运行总次数:0
代码可运行

概述:ProcessEngineConfiguration对象代表一个Activiti流程引擎的全部配置,该类提供一系列创建ProcessEngineConfiguration实例的静态方法,这些方法用于读取和解析相应的配置文件,并返回ProcessEngineConfiguration的实例。出这些静态方法外,该类为其他可配置的引擎属性提供相应的setter和getter方法

此处用到的所有类关系如下图:

一、读取默认的配置文件

说明

  • 在默认情况下,会直接到ClassPath下读取名为“activiti.cfg.xml”的Activiti配置文件,启动并获取名称为“processEngineConfiguration”的bean实例。
  • 此处使用的类是StandaloneProcessEngineConfiguration,它是processEngineConfiguration的子子类,因为processEngineConfiguration是抽象类,不能直接使用。
  1. 文件所在位置如下:
  1. 以下为一个默认的activiti.cfg.xml的配置文件:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--流程引擎配置的bean-->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

		<!--"&amp"是转义符,代表"&"-->
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/act?useSSL=false&amp;characterEncoding=UTF-8" />
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUsername" value="root" />
        <property name="jdbcPassword" value="123456" />

		<!--该属性有三个取值,说明如下:
            1. false: false为默认值,设置为该值后, Activiti 在启动时, 会对比数据库表中保存的版本,
                    如果没有表或者版本不匹配时, 将在启动时抛出异常。
            2. true: 设置为该值后, Activiti 会对数据库中所有的表进行更新, 如果表不存在, 则Activiti 会自动创建。
            3. create-drop: Activiti 启动时, 会执行数据库表的创建操作, 在 Activiti 关闭时, 执行数据库表的删除操作。
        -->
        <property name="databaseSchemaUpdate" value="true" />
    </bean>

</beans>
  1. 此时默认去获取该配置文件的代码如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ProcessEngineConfiguration configuration =
                ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
System.out.println(configuration.getJdbcUrl());
        
//结果:jdbc:mysql://localhost:3306/act

二、读取自定义的配置文件

  1. 配置文件位置:
  1. my-activiti1.xml配置文件内容和上面一样,只是文件名变了。
  2. my-activiti2.xml配置文件的bean的id变了,如下:
  1. 获取配置文件的方法是两个重载的方法,获取配置文件代码如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//1.指定配置文件创建ProcessEngineConfiguration:
//Activiti会到ClassPath下查找my-activiti1.xml的配置文件,并创建名称为"processEngineConfiguration的bean
ProcessEngineConfiguration configuration1 =
                ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("my-activiti1.xml");
System.out.println(configuration1.getJdbcUrl());
//结果:jdbc:mysql://localhost:3306/act

//2.指定配置文件创建ProcessEngineConfiguration,两个参数:第一个为配置文件位置,第二个为创建bean的名称
ProcessEngineConfiguration configuration2 =
                ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("my-activiti2.xml","test");
System.out.println(configuration2.getJdbcUrl());
//结果:jdbc:mysql://localhost:3306/act

三、读取输入流的配置

说明

  • ProcessEngineConfiguration中提供了一个createProcessEngineConfigurationFromInputStream方法,该方法使得Activiti配置文件的加载不在局限于项目的ClassPath,只要得到配置文件的输入流,即可创建ProcessEngineConfiguration。
  • 该方法也提供了两个重载的方法,可以知道在解析时bean的名称。下面例子只指定了文件位置
  1. 配置文件位置:
  1. 配置文件内容和默认配置的activiti.cfg.xml一样
  2. 获取配置文件见代码如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//读取输入流的配置,file的根目录是项目名称的位置:此处即为first-activiti
File file = new File("test/input-stream.xml");
InputStream inputStream = new FileInputStream(file);
ProcessEngineConfiguration configuration3 = ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(inputStream);
System.out.println(configuration3.getJdbcUrl());
//结果:jdbc:mysql://localhost:3306/act

四、获取独立的流程引擎配置(不使用配置文件方式)

  1. 使用creatStandaloneInMemProcessEngineConfiguration方法创建ProcessEngineConfiguration,该方法返回的是StandaloneInMemProcessEngineConfiguration。使用该方法不用Activiti配置文件。并且该实例值只默认了如下两个属性(可看源码):
  • this.databaseSchemaUpdate = “create-drop”;
  • this.jdbcUrl = “jdbc:h2:mem:activiti”; 代码如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ProcessEngineConfiguration configuration4 = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
System.out.println(configuration4.getJdbcUrl());
System.out.println(configuration4.getDatabaseSchemaUpdate());

//结果:
//jdbc:h2:mem:activiti
//create-drop
  1. 使用createStandaloneProcessEngineConfiguration方法创建独立的配置,不需要使用配置文件,不过此方法返回的实例是StandaloneProcessEngineConfiguration,其所拥有的属性都是ProcessEngineConfiguration的默认的(可看ProcessEngineConfiguration源码) 代码如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ProcessEngineConfiguration configuration5 = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
System.out.println(configuration5.getJdbcUrl());
System.out.println(configuration5.getDatabaseSchemaUpdate());

//结果:
//jdbc:h2:tcp://localhost/~/activiti
//false

看《疯狂workflow讲义第二版》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
activiti学习笔记(一) 获取流程配置实例
activiti获取流程配置实例 流程配置的获取方法api        流程配置的获取共有七种方法,但是只分为三类,一类是根据配置文件路径进行获取、一类是根据流文件获取、还有一类是构建一个空的实例,根据类的默认属性来获取 /** * @author 郑小康 * 流程引擎配置共有七种方法 * 方法1 方法2调用的实际是方法3 * 方法4 调用其实就是方法5 * 方法6 和方法7是相同 * */ //方法1 //实际调用的方法三只不过默认beanName是pro
cfs
2018/03/08
8810
第二章:activiti工作流连接数据库,和eclipse安装activiti插件
下面我们写一个连接数据库的测试类,把activity需要的24张表建出来,首先建个数据库:
全栈程序员站长
2022/08/05
5670
第二章:activiti工作流连接数据库,和eclipse安装activiti插件
OA工作流-Activiti(一)[通俗易懂]
OA工作流:建立于网络办公自动化基础上的事务行政审批,业务申请审批、公文、信息等的网上流转。它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/10
2.5K0
OA工作流-Activiti(一)[通俗易懂]
Activiti7工作流引擎-Activiti服务架构图
在新版本中,我们通过实验可以发现 IdentityService,FormService 两个 Serivce 都已经删除了。所以后面我们对于这两个 Service 也不讲解了,但老版本中还是有这两个 Service,同学们需要了解一下。
cwl_java
2019/12/30
2.4K0
Activiti7工作流引擎-Activiti服务架构图
【第四篇】Camunda系列-ProcessEngine核心对象
  ProcessEngine是Camunda流程引擎的核心。我们在流程中的很多具体的处理比如流程部署、流程部署、流程审批等操作都是通过XXXService来处理的。而相关的XXXService都是通过ProcessEngine来管理的。所以对于ProcessEngine的创建方式还是很有必要掌握的。
用户4919348
2022/10/27
3.5K0
【第四篇】Camunda系列-ProcessEngine核心对象
Activiti7工作流引擎-Activiti7环境准备
作用:用于测试 activiti 的 api,提供各种 service 接口。需要创建一个数据库:仅仅有 activiti 的数据表
cwl_java
2019/12/30
4.1K0
Activiti7工作流引擎-Activiti7环境准备
Activity工作流引擎学习笔记(一)「建议收藏」
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/08
1.7K0
Activity工作流引擎学习笔记(一)「建议收藏」
工作流引擎使用详解!工作流框架Activiti的详细配置以及安装和使用
创建ProcessEngine Activiti流程引擎的配置文件是名为activiti.cfg.xml的XML文件.注意与使用Spring方式创建流程引擎是不一样的ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine()它会在classpath下搜索activiti.cfg.xml,并基于这个文件中的配置构建引擎<beans xmlns="http://www.springframework.org/schema/bean
攻城狮Chova
2022/01/02
1.8K0
工作流引擎使用详解!工作流框架Activiti的详细配置以及安装和使用
activity(工作流)初步学习记录
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/07
7210
activity(工作流)初步学习记录
java 流程引擎_Activiti流程引擎对象及配置原理解析「建议收藏」
创建一个流程引擎配置对象ProcessEngineConfiguration对流程引擎进行配置
全栈程序员站长
2022/11/01
8080
activiti学习笔记(二) 获取流程实例
获取流程实例 流程实例获取的源码解析        以获取默认的流程实例为例,来解释整个流程实例的获取过程 文件位置:/org/activiti/engine/ProcessEngines.java     第一步:通过getDefaultProcessEngine来获取,可以看出其调用的当前类的getProcessEngine方法。 //获取默认的流程引擎实例 NAME_DEFAULT="default" public static ProcessEngine getDefaultProcessEn
cfs
2018/03/08
1K0
Activiti6.0(三)引擎配置
引擎配置类介绍 ProcessEngineConfigUration 查找并解析xml配置文件activiti.cfrg.xml 提供多个静态方法配置对象 实现几个基于不通场景的子类 静态方法创建配置对象 默认路径加载一个资源配置文件构造对象:ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault() 指定目录加载一个资源配置文件构造对象 ProcessEngineConfiguration.c
楠楠
2019/07/16
7440
Activiti6.0(三)引擎配置
Spring Boot + Activiti 完美结合,快速实现工作流
关于工作流之前分享过一篇flowable,今天分享一下另外一个实现:Activiti
终码一生
2023/01/08
1.6K0
Spring Boot + Activiti 完美结合,快速实现工作流
第一节:实现Activiti6.0的第一个demo
lib:存放需要使用的jar包,可从下面链接直接下载解压,记得加入将包加入项目中,如下: jar包提取码:c0zq
凡人飞
2020/09/20
7910
工作流引擎 Activiti 万字详细入门
工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/08
5.2K0
工作流引擎 Activiti 万字详细入门
项目实践工作流之Activiti学习(九)
在 activiti.cfg.xml 中配置数据源和 processEngineConfiguration
用户1289394
2023/10/24
1650
项目实践工作流之Activiti学习(九)
Activiti7笔记(一)Activiti7是什么,入门流程操作的代码实现
Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
一写代码就开心
2022/05/09
3.7K0
Activiti7笔记(一)Activiti7是什么,入门流程操作的代码实现
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/05/23
3K0
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
Activity 工作流配置「建议收藏」
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/01
1.6K0
Activity 工作流配置「建议收藏」
Spring Boot + Activiti 完美结合,快速实现工作流~
关于工作流之前分享过一篇flowable,今天分享一下另外一个实现:Activiti
码猿技术专栏
2023/05/01
1.5K0
Spring Boot + Activiti 完美结合,快速实现工作流~
推荐阅读
相关推荐
activiti学习笔记(一) 获取流程配置实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验