一、執行期環境就是乙個餐館
二、jbpm4的執行期環境
environment environment = environmentfactory.openenvironment();
try finally
兩個關鍵的類:environmentfactory和environment.
environmentfactory是全域性的,在整個應用程式中保持乙個例項即可.
environment則是每次方法呼叫則要new乙個.
看看environment的主要方法:
public abstract object get(string name);
public abstract t get(classtype);
是的,environment為我們的**提供所需要的服務類例項.
那麼,如何獲得environment?
那麼,為什麼environment每次呼叫要new呢?
好吧,當你需要獲取資料庫session的時候,是不是每次都要new呢.environment提供的服務裡包括了非執行緒安全的資料庫操作服務.
三、 jbpm4執行期環境的實現
1、jbpmconfiguration
jbpmconfiguration是jbpm4裡最重要的類,它是整個應用程式的入口.它實現了environmentfactory介面.
jbpmconfiguration載入jbpm總的配置檔案,還是大概掃一下這個配置檔案:
配置檔案被分為了兩部分,分別是:process-engine-context和transaction-context.對應於兩個ioc容器(wirecontext)的配置檔案.
作為environmentfactory,jbpmconfiguration持有成品process-engine-context對應的ioc容器(全域性的)例項,持有半成品transaction-context的wiredefinition.當呼叫openenvironment方法時,jbpmconfiguration會new environment,然後將process-engine-context ioc填充入environment,同時初始化transaction-context ioc,並將其也填充入environment.這樣通過environment就可以獲得所有所需要的服務,包括全域性的和非執行緒安全的服務例項.也就是environment透過ioc容器提供了查詢各種服務的能力.
file:///c:/documents%20and%20settings/administrator/local%20settings/temporary%20internet%20files/content.ie5/ambsbsk7/6f603207390ea3518502ce6fa53f60a0[1].png
2、與執行緒繫結的environment
environment初始化之後,避免引數傳遞得一塌糊塗的方式就是將environment與執行緒繫結.看environment的**:
是的,在openenvironment時,有這麼一行**:
這樣environment就與執行緒繫結了,可以通過environment.getcurrent()任意呼叫了.
**有壓迫,**就有放抗.
在environment.close()方法裡:
environment.popenvironment();
ok,結束.
JBPM4 獲取任務
示例 1 xml version 1.0 encoding utf 8 23 process name test key test xmlns 4 start name start1 g 255,35,48,48 5 transition name 提交到科長 to 科長審批 g 63,25 6st...
jbpm4 引數設定
task test 2 xmlns description 測試型別 這樣是無法取到 description的 正確寫法是這樣的 task test 2 xmlns 測試型別 流程 xmlns 發布到資料庫中的時候會變成 流程 key process xmlns 這樣發布到資料 庫中,流程名稱就是中...
jbpm4流程服務介紹
1 流程引擎processengine的構建方式如下三種 2 流程引擎提供的主要服務介面如下 2.1 流程資源repositoryservice rs包含了管理流程定義的所有方法 發布 刪除 掛起和恢復 檢視 2.1.1 發布流程 2.1.2 刪除流程 2.1.3 掛起和恢復流程 2.1.4 檢視流...