1. 程式人生 > >flowable FormEngine和FormEngineConfiguration

flowable FormEngine和FormEngineConfiguration

FormEngineConfiguration 繼承自 AbstractEngineConfiguration。

一、獲得例項

FormEngineConfiguration提供了7個公開的靜態方法:
其中5個用於Spring環境下,2個用於獨立執行Standalone模式。

Standalone模式程式碼如下:

public static FormEngineConfiguration createStandaloneFormEngineConfiguration() {
        return new StandaloneFormEngineConfiguration();
    }

    public
static FormEngineConfiguration createStandaloneInMemFormEngineConfiguration() { return new StandaloneInMemFormEngineConfiguration(); }

二、建立FormEngine

FormEngineConfiguration提供buildFormEngine()方法建立FormEngine例項。

public FormEngine buildFormEngine() {
        init();
        return new
FormEngineImpl(this); }

三、初始化服務

FormEngineConfiguration包含三個屬性,是三個服務類。

protected FormManagementService formManagementService = new FormManagementServiceImpl();
    protected FormRepositoryService formRepositoryService = new FormRepositoryServiceImpl();
    protected FormService formService = new
FormServiceImpl();

在建立FormEngine的buildFormEngine()中,init()方法實現了對這些服務的初始化賦值。

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

 protected void initServices() {
        initService(formManagementService);
        initService(formRepositoryService);
        initService(formService);
    }

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

初始化過程是將 FormEngineConfiguration父類的CommandExecutor 傳遞給這三個服務類。

這三個服務類初始化後封裝了CommandExecutor,通過FormEngineConfiguration傳遞給 FormEngine。

與前面的ContentEngineConfiguration和DmnEngineConfiguration類似,FormEngineConfiguration中的這些服務也是繼承了 ServiceImpl 類。

這裡寫圖片描述