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

2.4 初始化流程引擎配置類

在代碼清單2-14中,buildProcessEngine方法會調用init()方法初始化ProcessEngine-ConfigurationImpl實例對象的各種屬性,具體實現如代碼清單2-20所示。

代碼清單2-20 ProcessEngineConfigurationImpl.java

僅從代碼量上就能看出ProcessEngineConfigurationImpl類的初始化相當復雜,涉及了各種各樣的考慮。在細化講解之前,首先要明白一點ProcessEngineConfigurationImpl是抽象類,上文講解的兩種配置風格中使用到的兩個流程引擎配置類StandaloneProcessEngine-Configuration和SpringProcessEngineConfiguration均繼承ProcessEngineConfigurationImpl類。

在實際項目開發中如果開發人員覺得ProcessEngineConfigurationImpl類中的初始化方法不能滿足業務需求,例如initBeans方法不能滿足要求,則可以自定義一個類繼承StandaloneProcessEngineConfiguration或者SpringProcessEngineConfiguration,然后重寫initBeans方法。由于init方法中涉及了大量屬性的初始化工作,如果單一地對每個方法進行講解恐怕很難理解其精髓,而且可能會有事倍功半的效果,因此本章節先講解幾個比較重要的初始化方法,其余后續章節會陸續講解,進而達到事半功倍的效果。

以上絕大部分方法的初始化處理邏輯均為:首先判斷客戶端是否設置了指定的屬性值,如果客戶端設置了則優先使用,否則使用系統內置的值進行初始化工作,對于這些可以讓客戶端擴展的屬性,將其稱之為“開關屬性”也許會更加容易理解一點。

約定

本書中如果沒有特殊說明,則開關屬性均指ProcessEngineConfigurationImpl類中可以讓客戶端擴展的屬性。

主站蜘蛛池模板: 安塞县| 南丹县| 营口市| 白银市| 五大连池市| 武宁县| 安多县| 麻阳| 福清市| 铜鼓县| 新巴尔虎右旗| 凤冈县| 青神县| 潞西市| 雷波县| 瓮安县| 佛坪县| 汶川县| 南平市| 扬州市| 临江市| 平利县| 镇平县| 根河市| 桃园县| 仪陇县| 南通市| 南涧| 宁津县| 阳东县| 开平市| 江源县| 织金县| 云阳县| 讷河市| 信丰县| 水富县| 鹰潭市| 都匀市| 嘉义市| 建宁县|