flowable FormEngine和FormEngineConfiguration
阿新 • • 發佈:2018-11-14
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 類。