java 流程引擎_Activiti流程引擎对象及配置原理解析「建议收藏」

java 流程引擎_Activiti流程引擎对象及配置原理解析「建议收藏」流程引擎对象和其配置对象都是activiti的核心对象一、activiti的简单使用流程activiti在工作时,一般有以下几个步骤:创建一个流程引擎配置对象ProcessEngineConfiguration对流程引擎进行配置通过流程引擎配置对象来获取流程引擎对象ProcessEngine通过流程引擎对象来部署流程图启动流程二、流程引擎配置对象ProcessEngineConfiguration…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

流程引擎对象和其配置对象都是activiti的核心对象

一、activiti的简单使用流程

activiti在工作时,一般有以下几个步骤:

创建一个流程引擎配置对象ProcessEngineConfiguration对流程引擎进行配置

通过流程引擎配置对象来获取流程引擎对象ProcessEngine

通过流程引擎对象来部署流程图

启动流程

二、流程引擎配置对象ProcessEngineConfiguration的介绍

activiti用ProcessEngineConfiguration对象来配置流程引擎。ProcessEngineConfiguration类提供了多个创建该类对象的静态方法,可以读取相应的配置文件,返回ProcessEngineConfiguration实例。通过该类中提供的getter和setter方法可以对流程引擎配置对象进行配置。

三、activiti配置文件的介绍

activiti创建流程引擎配置对象时需要一个配置文件,

xmlns:context=”http://www.springframework.org/schema/context”

xmlns:tx=”http://www.springframework.org/schema/tx”

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

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd”>

class=”org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration”>

仔细观察这个配置文件,这其实是一个spring的配置文件,在其中配置了一个ProcessEngineConfiguration类的bean,然后在代码中就可以读取这个配置文件,获取这个bean。

processEngineConfiguration这个bean要注入的属性:

(1)数据库连接相关的属性

(2)databaseSchemaUpdate,数据库策略,

false:默认值,设置为该值,activiti在启动时如果数据库中没有表或者版本不匹配,会抛出异常

true:启动时会对所有表进行更新,如果没有表就会自动创建表

create-drop: 启动时创建表,关闭时删除表

针对其中的数据库连接相关的属性,我们还可以在这个配置文件中再配置一个数据源,在这里引用数据源的bean

四、获取流程引擎配置对象

4.1 读取默认名称的配置文件来创建配置对象

ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault() 这个方法会在classpath下读取名为activiti.cfg.xml的配置文件,并获取名称为processEngineConfiguration的bean返回。

所以如果在resources目录下给定一个activiti.cfg.xml配置文件,在其中创建一个名为processEngineConfiguration的bean,在程序中调用这个方法就可以得到流程引擎配置对象。

/**

* 用ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault()

* 创建流程引擎配置对象

*/

@Test

public void test1() {

ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();

System.out.println(configuration);

}

4.2 读取自定义名称的配置文件来创建流程引擎配置对象

ProcessEngineConfiguration.createProcessEngineConfigurationFromResource()方法可以加载指定位置的配置文件,并获取给定名称的bean来得到流程引擎配置对象。

@Test

public void test2() {

ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(“cfg/activiti-cfg.xml”, “processEngineConfiguration”);

System.out.println(configuration);

}

五、流程引擎对象

ProcessEngine,流程引擎对象,是activiti的核心对象之一,使用该对象来部署流程。

要获取该对象时,需要先获取ProcessEngineConfiguration 流程引擎配置对象来对流程引擎进行配置,然后通过这个配置对象来获取流程引擎对象。下面说明下如何获取流程引擎对象

5.1 buildProcessEngine方法创建

这个方法是ProcessEngineConfiguration类的实例方法,该方法返回一个已经配置好的流程引擎对象

@Test

public void testCreateProcessEngine() {

ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();

ProcessEngine processEngine = configuration.buildProcessEngine();

System.out.println(processEngine);

}

5.2 用ProcessEngines类来获取

activiti在ProcessEngines类中也提供了创建流程引擎对象的方法,这是一个创建和关闭流程引擎的工具类,所有创建的(包括使用其他方式创建的)ProcessEngine实例都会被注册到ProcessEngines中,实际上是在该类中维护了一个Map对象,key为ProcessEngine实例的名称,value为ProcessEngine实例。

5.2.1使用ProcessEngines.init()方法获取

ProcessEngines的init方法,会读取activiti的默认配置文件,即classpath下的activiti.cfg.xml文件,并将创建的流程引擎实例缓存到map中,该方法会在map中创建key=default的ProcessEngine对象,

然后我们就可以先获取到这个map,然后从map中获取key=defalut的流程引擎对象。

@Test

public void testCreateProcessEngine2() {

//读取配置文件,创建流程引擎对象缓存到map中

ProcessEngines.init();

//获取map

Map enginesMap = ProcessEngines.getProcessEngines();

//获取key为default的对象

ProcessEngine processEngine = enginesMap.get(“default”);

System.out.println(processEngine);

}

5.2.2 使用getDefaultProcessEngine()方法获取

ProcessEngines的getDefaultProcessEngine()方法,会返回缓存map中的key为default的流程引擎对象,如果这个map还没有进行初始化,该方法就会先调用ProcessEngines.init()方法初始化缓存map,然后再获取key为default的流程引擎对象。

@Test

public void testCreateProcessEngine3() {

ProcessEngine defaultProcessEngine = ProcessEngines.getDefaultProcessEngine();

System.out.println(defaultProcessEngine);

}

比较以上的几种创建流程引擎的方式,我们一般选择ProcessEngines.getDefaultProcessEngine()方法来获取,

因为这种方式最简单,只需要提供一个使用默认名称的配置文件activiti.cfg.xml,在其中做好对流程引擎的配置

然后我们就可以直接获取流程引擎对象。

六、总结

以上介绍了activiti中的两个核心对象,流程引擎配置对象和流程引擎对象,以及如何获取这两个对象。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

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

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


相关推荐

  • oracle中is not null,oracle之is null和is not null的优化「建议收藏」

    oracle中is not null,oracle之is null和is not null的优化「建议收藏」oracle之优化isnull语句一:isnull的优化方法:通过nvl(字段,j)=j的方式,将字段中为空的数据转化为j,从而正常使用索引。具体实现条件则是:iisnull<===>j=nvl(i,j);注意:使用时必须要确保字段的数据不包含j,例如:(age,15)=15,此时有可能age内容是15,此时不可以,j的值要变换,保证不再age的范围之内。函数介绍:nv…

    2022年8月30日
    5
  • itextpdf生成列表基本用法

    itextpdf生成列表基本用法随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。在上一篇文章使用itextpdf生成表格基本用法中,介绍了生成表格的基本步骤和一些常用设置,同样的,在某些需求下,我们需要在pdf中展示列表,体现条理性,itextpdf同样支持,这个开源库支持很多种列表风格来满足…

    2022年6月22日
    32
  • 二级公共基础知识总结笔记[通俗易懂]

    二级公共基础知识总结笔记[通俗易懂]二级公共基础知识总结下个学期就要开始我的计算机双学位就读了。在此之前,我打算先考几个证来过渡一下,像二级的C、C++、VB、Java、Python、Office都考一下。其中我比较熟悉的只有C和Python,其他的编程语言就要自己突击一下了。3月我报的是C、C++和VB。为此还买了几本书。这里总结一下考点,做一下笔记。之后书就不重要了,可以丢了。再刷一些题目,做一些记录就可以了。开始笔记吧。…

    2022年5月3日
    52
  • C++用于修饰的keyword

    C++用于修饰的keyword

    2021年12月16日
    39
  • 产品经理告诉你什么是PMF?什么是MVP?

    产品经理告诉你什么是PMF?什么是MVP?一、什么是PMF?PMF指的是产品与市场匹配的产品1.如何判断PMF的临界点?1、留存:30%的新用户次日留存2、新增用户DAU:大于1003、用户数:10万用户数DAU:单日活跃用户量,反应产品短期用户活跃度2.PMF几种类型1、更好体验的产品,如美图秀秀2、抓住细分市场,如uber、P2P3、全新的市场,如微博的@4、综合体,如Airbnb二、什么是MVP?MVP指的是对用户有价值的最小可用产品MVP打造阶段:对用户有价值的最小可用产品,从功能列表中定位出产品的核心功能,.

    2022年5月24日
    62
  • 解决Eclipse中文乱码

    解决Eclipse中文乱码使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码格式解决乱码问题。在Eclipse可以从几个层面设置编码格式:Workspace、Project、ContentType、File 本文以Eclipse3.3(英文)为例加以说明: 1.设置Workspace的编码格式: Windows

    2022年5月13日
    38

发表回复

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

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