第三章,Activiti流程引擎的配置
1、ProcessEngineConfiguration
ProcessEngineConfiguration物件代表一個Activiti流程引擎的全部配置,該類下面有一系列的靜態方法,用於讀取和解析相應的配置檔案,並且返回ProcessEngineConfiguration的物件例項。
1.1、createProcessEngineConfigurationFromResourceDefault方法
該方法會從classpath下預設讀取activiti.cfg.xml檔案,該檔案是一個spring的bean配置檔案,利用spring的依賴注入,獲取processEngineConfiguration的bean例項。activiti.cfg.xml配置檔案的內容如下所示
<?xml version="1.0" encoding="UTF-8"?>
<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-4.1.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/act"/>
<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUsername" value="root"/>
<property name="jdbcPassword" value="root"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
</beans>
1.2,createProcessEngineConfigurationFromResource方法
該方法就是不會預設的載入activiti.cfg.xml檔案,而是會使用開發者自己傳入的檔案。這個方法接收兩個引數,第一個是檔名稱的字串引數,第二個是通過這個檔案完成依賴注入的物件的名稱字串,例如我在classpath建立了config.xml,裡面利用定義了一個process的bean例項,所以我們在使用這個方法的時候應該是ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(“config.xml”,”process”)。
1.3,createProcessEngineConfigurationFromInputStream方法
這個方法的使用就不會限制我們一定要把檔案放在classpath下,利用輸入流我們可以讀取任意的檔案。
1.4,createStandaloneInMemProcessEngineConfiguration方法
這個方法不會讀取任何的配置檔案,所有的資料屬性都是硬編碼在程式碼中的,我們在使用的時候只需要指定databaseSchemaUpdate屬性和jdbcUrl屬性,而且這個使用的記憶體資料庫,例如h2。如果在程式碼編寫中需要改變某個屬性的值,我們只需要呼叫這個類的set方法。
2,資料來源的配置
當前是使用jdbc的形式,將資料庫的配置資訊寫在了配置檔案中,在activiti中ProcessEngineConfiguration引擎類中的方法也是可以接受資料來源例項引數的,例如可以使用C3P0,DBCP的資料來源。
2.1,C3P0資料來源配置
<?xml version="1.0" encoding="UTF-8"?>
<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-4.1.xsd">
<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/act"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
</bean>
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
</beans>
2.2,DBCP資料來源配置
<?xml version="1.0" encoding="UTF-8"?>
<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-4.1.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/act"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
</beans>
測試java程式碼
package first;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
public class First {
public static void main(String[] args) {
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = engine.getRepositoryService();
RuntimeService runtimeService = engine.getRuntimeService();
TaskService taskService = engine.getTaskService();
repositoryService.createDeployment()
.addClasspathResource("bpmn/First.bpmn").deploy();
runtimeService.startProcessInstanceByKey("myProcess");
Task task = taskService.createTaskQuery().singleResult();
System.out.println("第一個任務完成前,當前任務名稱是:" + task.getName());
taskService.complete(task.getId());
task = taskService.createTaskQuery().singleResult();
System.out.println("第二個任務完成前,當前任務名稱是:" + task.getName());
taskService.complete(task.getId());
task = taskService.createTaskQuery().singleResult();
System.out.println("流程結束後,查詢任務:" + task);
}
}
相關推薦
第三章,Activiti流程引擎的配置
1、ProcessEngineConfiguration ProcessEngineConfiguration物件代表一個Activiti流程引擎的全部配置,該類下面有一系列的靜態方法,用於讀取和解析相應的配置檔案,並且返回ProcessEngineConfi
【原創】SSM框架下,新增activiti流程引擎配置--轉載請註明出處
1.Activiti簡介 Activiti是一款基於bpmn2.0標準所開發的流程引擎,該引擎可以對bpmn20.xml和bpmn檔案進行解析,按照設計的所預先設計出的流程圖來進行流程流轉的工作流引擎。目前在市場上的大部分OA系統工作流都是基於該框架進行開發的。 2.Activiti的ja
Activiti入門教程三(詳解流程引擎配置)
在先前的部落格中提到了有關ProcessEngineConfiguration建立,但並沒有詳細的解釋,主要建立的幾個方法,那麼這篇部落格就來談一談有關ProcessEngineConfig
python 培訓第三章 ,函數,裝飾器,模塊,內置函數之一函數
python目錄: 函數示例裝飾器模塊內置函數一、函數示例: 1、定義函數: def fun(args): ‘描述信息‘ 函數體 return 返回值 定義函數的三種形式: 無參函數def foo():print(‘in the foo‘)
python培訓第三章,模塊
python系統相關的信息模塊: import syssys.argv 是一個 list,包含所有的命令行參數. sys.stdout sys.stdin sys.stderr 分別表示標準輸入輸出,錯誤輸出的文件對象. sys.stdin.readline() 從標準輸入讀一行 sys.stdo
第三章,暫存器整理
第三章,記憶體訪問 一,字資料在記憶體中的儲存 1, 記憶體以位元組為單位,劃分為若干個單元。位元組:8bit,字:16bit,雙字:32bit,四字:64bit 2, 字資料的儲存的原則為:高-高-低-低,字資料的低位位元組存放於低地址記憶體單元,字資料的高位位元組存放於高地址的記憶體單元。取低地址記
第三章,暫存器
第三章,記憶體訪問 一,字資料在記憶體中的儲存 1, 記憶體以位元組為單位,劃分為若干個單元。位元組:8bit,字:16bit,雙字:32bit,四字:64bit 2, 字資料的儲存的原則為:高-高-低-低,字資料的低位位元組存放於低地址記憶體單元,字資料的高位位元組存放於高地址的記憶體單元。取低地址記
.NET Core實戰專案之CMS 第三章 入門篇-原始碼解析配置檔案及依賴注入
作者:依樂祝 原文連結:https://www.cnblogs.com/yilezhu/p/9998021.html 寫在前面 上篇文章我給大家講解了ASP.NET Core的概念及為什麼使用它,接著帶著你一步一步的配置了.NET Core的開發環境並建立了一個ASP.NET Core的mvc專
[uboot] (第三章)uboot流程——uboot-spl程式碼流程
以下例子都以project X專案tiny210(s5pv210平臺,armv7架構)為例。 建議先看《[project X] tiny210(s5pv210)上電啟動流程(BL0-BL2)》,根據例子瞭解一下上電之後的BL0\BL1\BL2階段,以及各個階段的
淺談RPA--第三章,orchestrator怎麼用?
因為咱們公司用的主要是uipath的產品,因此博主接下來對於這章會針對uipath的相關套件展開討論。 orchestrator,是uipath的一個產品,其主要功能是robot排程,角色許可權控制,流程管理,robot版本管理,config配置,佇列管理等功能。 這樣子
OpenCV 3 pyton(第三章,二值化和尋找輪廓線)
retval, dst = cv.threshold( src, thresh, maxval, type[, dst] ) 這是個閾值化操作 src是input array (多通道, 8-bit or 32-bit floating point). d
Kotlin詳解:第三章,實戰
一,搭建開發環境 1,安裝Android Studio 3.0及以上版本 2,升級Gradle外掛版本至少為4.1 3,升級Kotlin外掛版本 4,工程配置 ①,配置工程build.gradle buildscript { ext.kotlin_version = '
阿里雲linux伺服器------第三章:配置php,mysql環境實現動態網站
在第二章中我們講述瞭如何配置靜態網站,接下來我們配置動態網站需要的環境 第一步:配置php環境,開啟putty連線到自己的伺服器執行以下命令 安裝php yum install php php-devel 重啟apache使php生效 y 安裝php的擴充套
第四章:activiti RuntimeService設定獲和取流程變數,及與taskService的區別,開始和完成任務時設定流程變數
上一章我們講了taskService獲取流程變數的過程,這裡我們講講RuntimeService是怎麼設定和獲取的,其實過程跟taskService是差不多的。RuntimeService 與流程例項及執行物件相關,對於的表是:act_ru_executionTaskServ
java並發編程的藝術,讀書筆記第三章
java並發編程的藝術final域的內存語義寫final域的重排規則:禁止把final域的寫重排序到構造方法之外,主要包括倆個個方面1)JMM禁止編譯器把final域的寫重排序到構造方法之外2)編譯器會在final域寫之後,構造函數return之前插入一個storestore屏障,這個屏障禁止處理器把fina
JAVA-初步認識-第三章-其他流程控制語句
繼續 bre ges con 它的 -1 範圍 一個 span 一. 其他的流程控制語句 比較簡單,但要註意的是它們有自己的控制範圍,離開範圍就沒用了。就是兩個關鍵字,加上分號,就是一個語句。 break;continue; break意思是跳出,跳出就代表著有自己的範圍,
第三章 持續集成jenkins工具使用之郵件配置
imp 修改 布爾型 suffix table ces 直接 wpa where 1 Email Extension Plugin插件安裝 持續集成很重要的一環就是及時將構建結果通知到對應的責任人,如:構建失敗了,至少需要下發通知給造成本次構建失敗的開發人員,如果包含自
第三章 交換機的Telnet遠程登陸配置
telnet 交換機 配置 遠程 一、實驗名稱交換機的Telnet遠程登陸配置二、實驗內容1.新建 Packet Tracer 拓撲圖 配置交換機管理 ip 地址 Switch(config)# int vlan 1 Switch(config-if)#
第12章,網絡管理(下)網絡基礎配置
linix 網絡管理 更多內容請點擊:Linux學習從入門到打死也不放棄,完全筆記整理(持續更新,求收藏,求點贊~~~~) http://blog.51cto.com/13683480/2095439筆記整理開始時間:2018年5月2日18:52:09 第12章,網絡管理(下)網絡基礎配置 本章內容
Java多線程編程核心技術,第三章
靜態 多線程編程 方法 except In obj 喚醒 bject not 1,notify的同步塊完了,才會運行wait的同步塊 2,interrupt()不是靜態方法,用在wait的線程上會有InteruptException,鎖也會被釋放 3,notify()喚醒的