1. 程式人生 > >flowable IdmEngine和IdmEngineConfiguration

flowable IdmEngine和IdmEngineConfiguration

IdmEngineConfiguration 繼承了 AbstractEngineConfiguration。

一、建立EngineConfiguration例項

IdmEngineConfiguration 提供7個公共的靜態方法用於建立自身的例項。
其中用於Spring環境下的有5個,用於Standalone環境下的有2個。
Standalone環境下的建立程式碼如下:

    public static IdmEngineConfiguration createStandaloneIdmEngineConfiguration() {
        return
new StandaloneIdmEngineConfiguration(); } public static IdmEngineConfiguration createStandaloneInMemIdmEngineConfiguration() { return new StandaloneInMemIdmEngineConfiguration(); }

二、建立 IdmEngine

IdmEngineConfiguration提供建立IdmEngine的buildIdmEngine()方法:

 public IdmEngine buildIdmEngine
() { init(); return new IdmEngineImpl(this); }

三、初始化服務

在init()方法中,初始化引擎中用到的服務。

protected void init() {
...
initServices();
...
}

    protected void initServices() {
        initService(idmIdentityService);
        initService(idmManagementService);
    }

    protected void initService(Object service) {
        if
(service instanceof ServiceImpl) { ((ServiceImpl) service).setCommandExecutor(commandExecutor); } }

這些服務定義在IdmEngineConfiguration中:

protected IdmIdentityService idmIdentityService = new IdmIdentityServiceImpl();
    protected IdmManagementService idmManagementService = new IdmManagementServiceImpl();

這些服務經過init()初始化後,通過IdmEngineConfiguration傳入IdmEngine例項。

init()初始化時,將AbstractEngineConfiguration的屬性CommandExecutor 傳遞給這些服務。

這些服務有一個公共的父類 ServiceImpl

ServiceImpl 包含一個CommandExecutor型別的屬性。
這些服務通過代理模式,封裝CommandExecutor完成服務中方法的具體行為的實現。

這裡寫圖片描述