亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Activiti流程引擎對(duì)象及配置原理解析

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

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

一、activiti的簡(jiǎn)單使用流程

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

  • 創(chuàng)建一個(gè)流程引擎配置對(duì)象ProcessEngineConfiguration對(duì)流程引擎進(jìn)行配置
  • 通過(guò)流程引擎配置對(duì)象來(lái)獲取流程引擎對(duì)象ProcessEngine
  • 通過(guò)流程引擎對(duì)象來(lái)部署流程圖
  • 啟動(dòng)流程

二、流程引擎配置對(duì)象ProcessEngineConfiguration的介紹

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

三、activiti配置文件的介紹

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

<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名稱的流程引擎配置對(duì)象 -->
  <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ì)觀察這個(gè)配置文件,這其實(shí)是一個(gè)spring的配置文件,在其中配置了一個(gè)ProcessEngineConfiguration類的bean,然后在代碼中就可以讀取這個(gè)配置文件,獲取這個(gè)bean。

processEngineConfiguration這個(gè)bean要注入的屬性:

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

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

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

針對(duì)其中的數(shù)據(jù)庫(kù)連接相關(guān)的屬性,我們還可以在這個(gè)配置文件中再配置一個(gè)數(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>

四、獲取流程引擎配置對(duì)象

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

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

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

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

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

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

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

五、流程引擎對(duì)象

ProcessEngine,流程引擎對(duì)象,是activiti的核心對(duì)象之一,使用該對(duì)象來(lái)部署流程。

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

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

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

5.2 用ProcessEngines類來(lái)獲取

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

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

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

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

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

5.2.2 使用getDefaultProcessEngine()方法獲取

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

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

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

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

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

六、總結(jié)

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

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

相關(guān)文章

  • 基于Java回顧之集合的總結(jié)概述

    基于Java回顧之集合的總結(jié)概述

    在這篇文章里,我們關(guān)注Java中的集合(Collection)。集合是編程語(yǔ)言中基礎(chǔ)的一部分,Java自JDK早期,就引入了Java Collection Framework。設(shè)計(jì)JCF的那個(gè)人,后來(lái)還寫了一本書,叫《Effective Java》
    2013-05-05
  • IntelliJ IDEA 2021.1 EAP 1 發(fā)布支持 Java 16 和 WSL 2

    IntelliJ IDEA 2021.1 EAP 1 發(fā)布支持 Java 16 和 WSL 2

    這篇文章主要介紹了IntelliJ IDEA 2021.1 EAP 1 發(fā)布支持 Java 16 和 WSL 2,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 使用Java獲取Json中的數(shù)據(jù)簡(jiǎn)單示例

    使用Java獲取Json中的數(shù)據(jù)簡(jiǎn)單示例

    開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到j(luò)son數(shù)據(jù)的處理,而單獨(dú)對(duì)json數(shù)據(jù)進(jìn)行增刪改并不方便,下面這篇文章主要給大家介紹了關(guān)于使用Java獲取Json中的數(shù)據(jù),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • SpringBoot打印系統(tǒng)執(zhí)行的sql語(yǔ)句及日志配置指南

    SpringBoot打印系統(tǒng)執(zhí)行的sql語(yǔ)句及日志配置指南

    這篇文章主要給大家介紹了關(guān)于SpringBoot打印系統(tǒng)執(zhí)行的sql語(yǔ)句及日志配置的相關(guān)資料,在Java SpringBoot項(xiàng)目中如果使用了Mybatis框架,默認(rèn)情況下執(zhí)行的所有SQL操作都不會(huì)打印日志,需要的朋友可以參考下
    2023-10-10
  • Spring IOC 注入的3種方式小結(jié)

    Spring IOC 注入的3種方式小結(jié)

    Spring IoC容器支持多種依賴注入方式,本文主要介紹了Spring IOC 注入的3種方式小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能(服務(wù)器)

    JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能(服務(wù)器)

    這篇文章主要介紹了JavaWeb實(shí)現(xiàn)用戶登錄與注冊(cè)功能,服務(wù)器部分的關(guān)鍵代碼實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java微信公眾號(hào)支付示例詳解

    java微信公眾號(hào)支付示例詳解

    這篇文章主要為大家詳細(xì)介紹了java微信公眾號(hào)支付示例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳

    SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳

    這篇文章主要介紹了SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot項(xiàng)目部署時(shí)application.yml文件的加載優(yōu)先級(jí)和啟動(dòng)腳本問(wèn)題

    SpringBoot項(xiàng)目部署時(shí)application.yml文件的加載優(yōu)先級(jí)和啟動(dòng)腳本問(wèn)題

    Spring Boot在啟動(dòng)時(shí)會(huì)根據(jù)一定的優(yōu)先級(jí)順序加載配置文件,優(yōu)先級(jí)從高到低依次是:命令行參數(shù)、Jar包外部config目錄下的配置文件、Jar包同級(jí)目錄下的配置文件、classpath下的/config目錄、classpath根路徑
    2024-09-09
  • Java用局域網(wǎng)實(shí)現(xiàn)聊天室功能

    Java用局域網(wǎng)實(shí)現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了Java用局域網(wǎng)實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評(píng)論