您好,登錄后才能下訂單哦!
流程引擎對象和其配置對象都是activiti的核心對象
一、activiti的簡單使用流程
activiti在工作時,一般有以下幾個步驟:
二、流程引擎配置對象ProcessEngineConfiguration的介紹
activiti用ProcessEngineConfiguration對象來配置流程引擎。ProcessEngineConfiguration類提供了多個創建該類對象的靜態方法,可以讀取相應的配置文件,返回ProcessEngineConfiguration實例。通過該類中提供的getter和setter方法可以對流程引擎配置對象進行配置。
三、activiti配置文件的介紹
activiti創建流程引擎配置對象時需要一個配置文件,
<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"> <!-- 配置使用默認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>
仔細觀察這個配置文件,這其實是一個spring的配置文件,在其中配置了一個ProcessEngineConfiguration類的bean,然后在代碼中就可以讀取這個配置文件,獲取這個bean。
processEngineConfiguration這個bean要注入的屬性:
(1)數據庫連接相關的屬性
(2)databaseSchemaUpdate,數據庫策略,
針對其中的數據庫連接相關的屬性,我們還可以在這個配置文件中再配置一個數據源,在這里引用數據源的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 讀取默認名稱的配置文件來創建配置對象
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<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還沒有進行初始化,該方法就會先調用ProcessEngines.init()方法初始化緩存map,然后再獲取key為default的流程引擎對象。
@Test public void testCreateProcessEngine3() { ProcessEngine defaultProcessEngine = ProcessEngines.getDefaultProcessEngine(); System.out.println(defaultProcessEngine); }
比較以上的幾種創建流程引擎的方式,我們一般選擇ProcessEngines.getDefaultProcessEngine()方法來獲取,
因為這種方式最簡單,只需要提供一個使用默認名稱的配置文件activiti.cfg.xml,在其中做好對流程引擎的配置
然后我們就可以直接獲取流程引擎對象。
六、總結
以上介紹了activiti中的兩個核心對象,流程引擎配置對象和流程引擎對象,以及如何獲取這兩個對象。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。