官术网_书友最值得收藏!

2.2 流程引擎架構(gòu)

Activiti框架提供的流程引擎配置類ProcessEngineConfiguration的類圖如圖2-1所示,該類的架構(gòu)如圖2-2所示。

圖2-1 ProcessEngineConfiguration子類邊界

圖2-2 流程引擎架構(gòu)圖

通過(guò)圖2-2可以很清晰地從全局角度了解ProcessEngineConfiguration類,如果開(kāi)發(fā)人員對(duì)Activiti源碼沒(méi)有太多接觸,可能對(duì)圖2-2中所涉及的類不是很理解,下面先簡(jiǎn)單介紹類的職責(zé),后續(xù)章節(jié)會(huì)深入講解。

(1)EngineServices:該接口中定義了獲取各種服務(wù)類實(shí)例對(duì)象的方法。

(2)ProcessEngine:繼承EngineServices接口,并增加了對(duì)流程引擎名稱的獲取以及關(guān)閉流程引擎的支持。

(3)ProcessEngineImpl:對(duì)ProcessEngine接口中定義的方法進(jìn)行實(shí)現(xiàn)。

(4)ProcessEngines:該類負(fù)責(zé)管理所有的流程引擎ProcessEngine集合,并負(fù)責(zé)流程引擎實(shí)例對(duì)象的注冊(cè)、獲取、注銷(xiāo)等操作。

(5)ProcessEngineConfiguration:該抽象類實(shí)現(xiàn)EngineServices接口,提供了一系列創(chuàng)建流程引擎配置類ProcessEngineConfiguration實(shí)例對(duì)象的方法。

(6)ProcessEngineConfigurationImpl:該抽象類繼承ProcessEngineConfiguration,負(fù)責(zé)創(chuàng)建一系列服務(wù)類實(shí)例對(duì)象、流程引擎實(shí)例對(duì)象以及ProcessEngineImpl類實(shí)例對(duì)象。該類可以通過(guò)流程配置文件交給Spring容器管理或者使用編程方式動(dòng)態(tài)構(gòu)造。

(7)SpringProcessEngineConfiguration:主要用于整合Spring框架時(shí)使用,提供幾個(gè)重要功能:創(chuàng)建流程引擎實(shí)例對(duì)象,流程引擎啟動(dòng)之后自動(dòng)部署配置的流程文檔(需要設(shè)置),設(shè)置流程引擎連接的數(shù)據(jù)源、事務(wù)管理器等。

(8)StandaloneProcessEngineConfiguration:標(biāo)準(zhǔn)的流程引擎配置類。

(9)MultiSchemaMultiTenantProcessEngineConfiguration:“多數(shù)據(jù)庫(kù)多租戶”流程引擎配置類,Activiti通過(guò)此類為開(kāi)發(fā)人員提供了自動(dòng)路由機(jī)制,這樣當(dāng)流程引擎需要連接多個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),客戶端無(wú)須關(guān)心引擎到底連接的是哪一個(gè)數(shù)據(jù)庫(kù),該類通過(guò)路由規(guī)則自動(dòng)選擇需要操作的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的操作對(duì)客戶端來(lái)說(shuō)是透明的,客戶端無(wú)須關(guān)心其內(nèi)部路由實(shí)現(xiàn)機(jī)制。

(10)JtaProcessEngineConfiguration:顧名思義,通過(guò)類名也知道該類支持JTA。

(11)StandaloneInMemProcessEngineConfiguration:該類通常可以在開(kāi)發(fā)環(huán)境中自測(cè)使用,默認(rèn)采用H2數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)。

(12)EngineServices提供的服務(wù)類如下。

? RepositoryService:提供一系列操作流程定義的方法。

? RuntimeService:提供一系列操作流程實(shí)例的方法。

? FormService:提供一系列操作流程表單的方法。

? TaskService:提供一系列操作任務(wù)的方法,例如任務(wù)的完成、掛起、激活、添加處理人、認(rèn)領(lǐng)、刪除等操作。

? HistoryService:提供一系列查詢歷史流程實(shí)例、歷史變量、歷史任務(wù)的方法。

? IdentityService:提供一系列操作用戶或者組的方法。

? ManagementService:提供查詢數(shù)據(jù)庫(kù)表中的數(shù)據(jù)、表的元數(shù)據(jù)以及執(zhí)行命令等方法。

主站蜘蛛池模板: 宁安市| 宣城市| 桓仁| 固始县| 嘉兴市| 柳州市| 宜章县| 新泰市| 安义县| 通辽市| 离岛区| 广丰县| 南平市| 武汉市| 儋州市| 班玛县| 安新县| 无极县| 灌阳县| 修水县| 临沂市| 辽宁省| 东光县| 寻乌县| 隆德县| 平定县| 大理市| 堆龙德庆县| 时尚| 南华县| 施秉县| 高唐县| 玛多县| 日土县| 偃师市| 桂平市| 博客| 泰安市| 简阳市| 驻马店市| 安岳县|