jBPM4的執行期環境

2021-08-31 13:06:47 字數 1663 閱讀 1894

一、執行期環境就是乙個餐館

二、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 檢視流...