(1). 概述
在前面剖析CamundaBpmAutoConfiguration类时,有说过:ProcessEngineFactoryBean很重要,因为,它最终会创建:ProcessEngine,其实,可以这样理解,前面那些配置类,大部份是为创建ProcessEngine做铺垫.
(2). ProcessEngineFactoryBean
public class ProcessEngineFactoryBean
// **************************************************************************************
// FactoryBean是Spring定义的工厂类,用于创建Bean
// **************************************************************************************
implements FactoryBean<ProcessEngine>,
DisposableBean,
ApplicationContextAware {
public ProcessEngine getObject() throws Exception {
if (processEngine == null) {
// 配置表达式管理
initializeExpressionManager();
// 配置事务扩展
initializeTransactionExternallyManaged();
// **************************************************************************************
// 最终的做法是:通过buildProcessEngine方法创建:ProcessEngine
// **************************************************************************************
processEngine = (ProcessEngineImpl) processEngineConfiguration.buildProcessEngine();
}
return processEngine;
}
}
(3). 总结
通过源码能看出来:ProcessEngine创建是由:ProcessEngineConfigurationImpl.buildProcessEngine构建而来.