最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Activiti流程引擎對象及配置原理解析

 更新時(shí)間:2020年03月09日 10:14:50   作者:程序曉猿  
這篇文章主要介紹了Activiti流程引擎對象及配置原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

一、activiti的簡單使用流程

activiti在工作時(shí),一般有以下幾個步驟:

  • 創(chuàng)建一個流程引擎配置對象ProcessEngineConfiguration對流程引擎進(jìn)行配置
  • 通過流程引擎配置對象來獲取流程引擎對象ProcessEngine
  • 通過流程引擎對象來部署流程圖
  • 啟動流程

二、流程引擎配置對象ProcessEngineConfiguration的介紹

activiti用ProcessEngineConfiguration對象來配置流程引擎。ProcessEngineConfiguration類提供了多個創(chuàng)建該類對象的靜態(tài)方法,可以讀取相應(yīng)的配置文件,返回ProcessEngineConfiguration實(shí)例。通過該類中提供的getter和setter方法可以對流程引擎配置對象進(jìn)行配置。

三、activiti配置文件的介紹

activiti創(chuàng)建流程引擎配置對象時(shí)需要一個配置文件,

<beans xmlns="http://www.springframework.org/schema/beans"
  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">

  <!-- 配置使用默認(rèn)bean名稱的流程引擎配置對象 -->
  <bean id="processEngineConfiguration"
    class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_01"></property>
    <property name="jdbcUsername" value="root"></property>
    <property name="jdbcPassword" value="root"></property>
    <property name="databaseSchemaUpdate" value="true"></property>
  </bean>

</beans>

仔細(xì)觀察這個配置文件,這其實(shí)是一個spring的配置文件,在其中配置了一個ProcessEngineConfiguration類的bean,然后在代碼中就可以讀取這個配置文件,獲取這個bean。

processEngineConfiguration這個bean要注入的屬性:

(1)數(shù)據(jù)庫連接相關(guān)的屬性

(2)databaseSchemaUpdate,數(shù)據(jù)庫策略,

  • false:默認(rèn)值,設(shè)置為該值,activiti在啟動時(shí)如果數(shù)據(jù)庫中沒有表或者版本不匹配,會拋出異常
  • true:啟動時(shí)會對所有表進(jìn)行更新,如果沒有表就會自動創(chuàng)建表
  • create-drop: 啟動時(shí)創(chuàng)建表,關(guān)閉時(shí)刪除表

針對其中的數(shù)據(jù)庫連接相關(guān)的屬性,我們還可以在這個配置文件中再配置一個數(shù)據(jù)源,在這里引用數(shù)據(jù)源的bean

<!-- 配置連接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_01"/>
  <property name="user" value="root"/>
  <property name="password" value="root"/>
</bean>

四、獲取流程引擎配置對象

4.1 讀取默認(rèn)名稱的配置文件來創(chuàng)建配置對象

ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault() 這個方法會在classpath下讀取名為activiti.cfg.xml的配置文件,并獲取名稱為processEngineConfiguration的bean返回。

所以如果在resources目錄下給定一個activiti.cfg.xml配置文件,在其中創(chuàng)建一個名為processEngineConfiguration的bean,在程序中調(diào)用這個方法就可以得到流程引擎配置對象。

  /**
   * 用ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault()
   * 創(chuàng)建流程引擎配置對象
   */
  @Test
  public void test1() {
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
    System.out.println(configuration);
  }

4.2 讀取自定義名稱的配置文件來創(chuàng)建流程引擎配置對象

ProcessEngineConfiguration.createProcessEngineConfigurationFromResource()方法可以加載指定位置的配置文件,并獲取給定名稱的bean來得到流程引擎配置對象。

  @Test
  public void test2() {
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("cfg/activiti-cfg.xml", "processEngineConfiguration");
    System.out.println(configuration);
  }

五、流程引擎對象

ProcessEngine,流程引擎對象,是activiti的核心對象之一,使用該對象來部署流程。

要獲取該對象時(shí),需要先獲取ProcessEngineConfiguration 流程引擎配置對象來對流程引擎進(jìn)行配置,然后通過這個配置對象來獲取流程引擎對象。下面說明下如何獲取流程引擎對象

5.1 buildProcessEngine方法創(chuàng)建
這個方法是ProcessEngineConfiguration類的實(shí)例方法,該方法返回一個已經(jīng)配置好的流程引擎對象

  @Test
  public void testCreateProcessEngine() {
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
    ProcessEngine processEngine = configuration.buildProcessEngine();
    System.out.println(processEngine);
  }

5.2 用ProcessEngines類來獲取

activiti在ProcessEngines類中也提供了創(chuàng)建流程引擎對象的方法,這是一個創(chuàng)建和關(guān)閉流程引擎的工具類,所有創(chuàng)建的(包括使用其他方式創(chuàng)建的)ProcessEngine實(shí)例都會被注冊到ProcessEngines中,實(shí)際上是在該類中維護(hù)了一個Map對象,key為ProcessEngine實(shí)例的名稱,value為ProcessEngine實(shí)例。

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

ProcessEngines的init方法,會讀取activiti的默認(rèn)配置文件,即classpath下的activiti.cfg.xml文件,并將創(chuàng)建的流程引擎實(shí)例緩存到map中,該方法會在map中創(chuàng)建key=default的ProcessEngine對象,

然后我們就可以先獲取到這個map,然后從map中獲取key=defalut的流程引擎對象。

  @Test
  public void testCreateProcessEngine2() {
    //讀取配置文件,創(chuàng)建流程引擎對象緩存到map中
    ProcessEngines.init();
    //獲取map
    Map<String, ProcessEngine> enginesMap = ProcessEngines.getProcessEngines();
    //獲取key為default的對象
    ProcessEngine processEngine = enginesMap.get("default");
    System.out.println(processEngine);
  }

5.2.2 使用getDefaultProcessEngine()方法獲取

ProcessEngines的getDefaultProcessEngine()方法,會返回緩存map中的key為default的流程引擎對象,如果這個map還沒有進(jìn)行初始化,該方法就會先調(diào)用ProcessEngines.init()方法初始化緩存map,然后再獲取key為default的流程引擎對象。

  @Test
  public void testCreateProcessEngine3() {
    ProcessEngine defaultProcessEngine = ProcessEngines.getDefaultProcessEngine();
    System.out.println(defaultProcessEngine);
  }

比較以上的幾種創(chuàng)建流程引擎的方式,我們一般選擇ProcessEngines.getDefaultProcessEngine()方法來獲取,

因?yàn)檫@種方式最簡單,只需要提供一個使用默認(rèn)名稱的配置文件activiti.cfg.xml,在其中做好對流程引擎的配置

然后我們就可以直接獲取流程引擎對象。

六、總結(jié)

以上介紹了activiti中的兩個核心對象,流程引擎配置對象和流程引擎對象,以及如何獲取這兩個對象。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入了解Springboot核心知識點(diǎn)之?dāng)?shù)據(jù)訪問配置

    深入了解Springboot核心知識點(diǎn)之?dāng)?shù)據(jù)訪問配置

    這篇文章主要為大家介紹了Springboot核心知識點(diǎn)中的數(shù)據(jù)訪問配置,文中的示例代碼講解詳細(xì),對我們了解SpringBoot有一定幫助,快跟隨小編一起學(xué)習(xí)一下吧
    2021-12-12
  • Spring?Boot讀取配置文件內(nèi)容的3種方式(@Value、Environment和@ConfigurationProperties)

    Spring?Boot讀取配置文件內(nèi)容的3種方式(@Value、Environment和@ConfigurationP

    工作中經(jīng)常會有一些參數(shù)需要配置,同時(shí)在代碼里面需要用到,所有就需要配置類讀取,然后在使用的時(shí)候注入該類進(jìn)行獲取相關(guān)參數(shù),下面這篇文章主要給大家介紹了關(guān)于Spring?Boot讀取配置文件內(nèi)容的3種方式,需要的朋友可以參考下
    2023-01-01
  • MyBatis中使用foreach循環(huán)的坑及解決

    MyBatis中使用foreach循環(huán)的坑及解決

    這篇文章主要介紹了MyBatis中使用foreach循環(huán)的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Protobuf詳解及入門指南附完整代碼

    Protobuf詳解及入門指南附完整代碼

    Protobuf是一種由Google開發(fā)的二進(jìn)制序列化格式,用于高效地序列化和反序列化結(jié)構(gòu)化數(shù)據(jù),它廣泛應(yīng)用于分布式系統(tǒng)、RPC框架和數(shù)據(jù)存儲中,提供了高效性、簡潔性、版本兼容性和語言無關(guān)性,本文介紹Protobuf詳解及入門指南,感興趣的朋友一起看看吧
    2025-03-03
  • 在SpringBoot中靈活使用異步事件的操作步驟

    在SpringBoot中靈活使用異步事件的操作步驟

    SpringBoot中的異步事件機(jī)制通過事件源和事件監(jiān)聽器的解耦,實(shí)現(xiàn)了松耦合的組件間通信,事件源發(fā)布事件,監(jiān)聽器異步處理事件,本文介紹在SpringBoot中靈活使用異步事件的操作,感興趣的朋友一起看看吧
    2025-03-03
  • Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型

    Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型

    這篇文章主要介紹了Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型,熟悉語法和數(shù)據(jù)類型通常是了解一種編程語言的開始,需要的朋友可以參考下
    2016-02-02
  • 基于RxPaparazzo實(shí)現(xiàn)圖片裁剪、圖片旋轉(zhuǎn)、比例放大縮小功能

    基于RxPaparazzo實(shí)現(xiàn)圖片裁剪、圖片旋轉(zhuǎn)、比例放大縮小功能

    這篇文章主要為大家詳細(xì)介紹了基于RxPaparazzo實(shí)現(xiàn)圖片裁剪、圖片旋轉(zhuǎn)、比例放大縮小功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Elasticsearch 在 Java 中的使用教程

    Elasticsearch 在 Java 中的使用教程

    Elasticsearch 是一個分布式搜索和分析引擎,基于 Apache Lucene 構(gòu)建,能夠?qū)崿F(xiàn)實(shí)時(shí)數(shù)據(jù)的存儲、搜索、和分析,它廣泛應(yīng)用于全文搜索、日志分析、性能監(jiān)控等領(lǐng)域,本文給大家介紹Elasticsearch 在 Java 中的使用教程,感興趣的朋友一起看看吧
    2025-04-04
  • Java某個經(jīng)緯度是否在genjson文件中問題

    Java某個經(jīng)緯度是否在genjson文件中問題

    GeoJSON是一種用于地理空間信息數(shù)據(jù)交換的格式,基于JSON,要判斷某個經(jīng)緯度是否在某個區(qū)域內(nèi),首先需要解析GeoJSON文件,確定區(qū)域邊界,然后使用經(jīng)緯度進(jìn)行比較
    2024-11-11
  • SpringBoot項(xiàng)目導(dǎo)入外部jar包的詳細(xì)指南

    SpringBoot項(xiàng)目導(dǎo)入外部jar包的詳細(xì)指南

    在開發(fā)SpringBoot項(xiàng)目時(shí),我們經(jīng)常需要引入一些外部的jar包來增強(qiáng)項(xiàng)目的功能,這些jar包可能不是Maven中央倉庫中的,或者我們想要使用特定版本的jar包,本文將詳細(xì)介紹如何在SpringBoot項(xiàng)目中導(dǎo)入外部jar包,需要的朋友可以參考下
    2024-10-10

最新評論

嘉黎县| 临洮县| 沅江市| 乡城县| 凌云县| 永福县| 米林县| 奎屯市| 焉耆| 石渠县| 谷城县| 焦作市| 东乌珠穆沁旗| 冀州市| 西藏| 平乡县| 翁牛特旗| 敦化市| 长丰县| 五莲县| 沙田区| 商都县| 怀安县| 凤城市| 锡林浩特市| 阳春市| 芦溪县| 南漳县| 密山市| 开平市| 微山县| 绍兴市| 新郑市| 石台县| 葫芦岛市| 沅陵县| 陆良县| 鹤山市| 依兰县| 深水埗区| 若羌县|