Activiti 5.17 配置文件的加载过程

Activiti 5.17 使用Spring加载配置文件。


实现的方法在 org.activiti.engine.impl.cfg.BeansConfigurationHelper 类中。

 
public static ProcessEngineConfiguration parseProcessEngineConfiguration(Resource springResource, String beanName) {
    DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
    XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);
    xmlBeanDefinitionReader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_XSD);
    xmlBeanDefinitionReader.loadBeanDefinitions(springResource);
    ProcessEngineConfigurationImpl processEngineConfiguration = (ProcessEngineConfigurationImpl) beanFactory.getBean(beanName);
    processEngineConfiguration.setBeans(new SpringBeanFactoryProxyMap(beanFactory));
    return processEngineConfiguration;
  }
  

首先用为 XmlBeanDefinitionReader 设置一个 BeanDefinitionRegistry 子类  DefaultListableBeanFactory ,作为 beanFactory ;

然后,用 XmlBeanDefinitionReader 加载 activiti.cfg.xml 引擎的配置文件;

从 beanFactory 中通过beanName 获得 processEngineConfiguration 的实例 (这里 beanName = "processEngineConfiguration"  参见前面文章中的 activiti.cfg.xml的内容),

并将 beanFactory 赋给 processEngineConfiguration。


这样,在 processEngineConfiguration 中就可以通过beanFactory直接获取配置文件中的bean。


Activiti 利用Spring 的几行代码,完成了类的配置、加载和获取操作。


你可能感兴趣的:(Activiti,流程引擎,工作流引擎,bpmn)