- Activiti權威指南
- 冀正
- 1010字
- 2020-11-28 15:59:56
2.9 其他方式構造引擎實例
上文分析了ProcessEngines類中的靜態(tài)方法getDefaultProcessEngine實例化流程引擎的過程,但是這種創(chuàng)建方式存在如下兩個缺陷。
(1)activiti.cfg.xml或者activiti-context.xml文件必須位于項目的classpath根目錄中,否則加載不到。
(2)activiti.cfg.xml文件中流程引擎配置類的bean的id值必須是processEngine-Configuration(默認情況下)。
看到以上兩個問題,難免會有疑問:配置文件的路徑可以靈活變動嗎?配置文件的名稱可以修改嗎?配置文件中流程引擎配置類的bean的id值可以是任意值嗎?這也是接下來重點講解的地方。
2.9.1 ProcessEngineConfiguration類創(chuàng)建引擎
ProcessEngineConfiguration類中提供了一系列創(chuàng)建流程引擎配置類實例對象的靜態(tài)方法,從而方便客戶端獲取流程引擎實例對象,而無須關心其內(nèi)部實現(xiàn)細節(jié),這些方法的定義如代碼清單2-32所示。
代碼清單2-32 ProcessEngineConfiguration.java

Activiti在ProcessEngineConfiguration類中為開發(fā)者提供了豐富多彩的靜態(tài)方法,用于創(chuàng)建流程引擎配置類實例對象,下面對該類中的方法進行總結說明。
(1)第1行定義的createProcessEngineConfigurationFromResourceDefault方法:該方法直接調(diào)用第7行定義的方法進行處理,并傳入第7行定義的方法需要的兩個輸入?yún)?shù)值,通過分析傳入的參數(shù)值可以得知,該方式構造流程引擎配置類實例需要的配置文件名稱必須為activiti.cfg.xml并且位于classpath根目錄中,配置文件中流程引擎配置類的bean的id值必須是processEngineConfiguration。
(2)第4行定義的createProcessEngineConfigurationFromResource方法:該方法直接調(diào)用第7行定義的方法進行處理,并傳入第7行定義的方法需要的兩個輸入?yún)?shù)值,其中resource參數(shù)值客戶端可以自定義,beanName為processEngineConfiguration對應配置文件中流程引擎配置類的bean的id值。
(3)第7行定義的createProcessEngineConfigurationFromResource方法:該方法比較靈活,resource和beanName兩個輸入?yún)?shù)值客戶端均可自定義。
(4)第10行定義的createProcessEngineConfigurationFromInputStream方法:inputStream參數(shù)為配置文件的數(shù)據(jù)流,beanName必須是processEngineConfiguration(不需要傳遞)。
(5)第13行定義的createProcessEngineConfigurationFromInputStream方法:inputStream參數(shù)為配置文件的數(shù)據(jù)流,beanName對應配置文件中流程引擎配置類中bean的id值,兩者均可自定義。
(6)第16行定義的createStandaloneProcessEngineConfiguration方法:創(chuàng)建Standalone-ProcessEngineConfiguration實例對象。
(7)第19行定義的createStandaloneInMemProcessEngineConfiguration方法:該方法主要用于創(chuàng)建StandaloneInMemProcessEngineConfiguration實例對象。
看到上面一系列的方法,可能會有這樣的疑問:以上羅列的所有方法均是創(chuàng)建ProcessEngineConfiguration實例對象,并沒有提供構造ProcessEngine實例對象的方法。其實這樣的設計也不難理解,只要能夠獲取到ProcessEngineConfiguration實例對象,就可以直接調(diào)用該實例對象的buildProcessEngine方法創(chuàng)建ProcessEngine實例。
2.9.2 編程方式創(chuàng)建引擎
以上幾種方式均是通過配置文件創(chuàng)建ProcessEngineConfiguration實例對象,進而通過該實例對象創(chuàng)建ProcessEngine實例對象,接下來講解如何使用編程方式創(chuàng)建流程引擎實例,具體實現(xiàn)如代碼清單2-33所示。
代碼清單2-33 App.java

上面代碼的實現(xiàn)邏輯非常簡單,首先第2行創(chuàng)建ProcessEngineConfiguration實例對象,然后第4~10行為該實例對象填充屬性值,最終第11行調(diào)用該實例對象的buildProcessEngine方法完成引擎實例的創(chuàng)建工作。
- Functional Python Programming
- Vue.js 3.x快速入門
- Java入門很輕松(微課超值版)
- 高級C/C++編譯技術(典藏版)
- Windows Phone 7.5:Building Location-aware Applications
- C語言程序設計實驗指導 (第2版)
- 開源項目成功之道
- Couchbase Essentials
- Android群英傳
- Python 快速入門(第3版)
- Learning Cocos2d-JS Game Development
- INSTANT Apache Maven Starter
- Java EE框架開發(fā)技術與案例教程
- 匯編語言程序設計教程
- Spring Cloud微服務架構開發(fā)實戰(zhàn)