
2.1 流程配置文件
接下来重点分析流程引擎实例对象的创建过程。首先讲解在Activiti中如何定义流程配置文件,Activiti中的流程配置文件类型可以分为以下两种。
(1)普通配置,即Activiti配置风格,通常情况下,使用该方式的文件名称为activiti. cfg.xml。
(2)Spring配置,即Spring配置风格,通常情况下,使用该方式的文件名称为activiti-context.xml。
以上两种方式均可实现流程引擎的配置工作,接下来具体分析这两种配置风格的实现。
2.1.1 Activiti配置风格
activiti.cfg.xml配置文件的内容如代码清单2-1所示。
代码清单2-1 activiti.cfg.xml

通过上面配置文件的内容,可以看出Activiti配置风格本质上还是使用了Spring中的文件配置方式,上面的配置文件中看到了一系列bean的声明,尽管Spring中对于bean元素的定义有多种实现方式,但是上面的这种方式已经足够Activiti使用了。
代码清单2-1中的第21~25行定义了一个id值为processEngineConfiguration的流程引擎配置类,然后为其设置数据源和流程引擎名称两个属性值,到此为止activiti.cfg.xml文件的配置已经结束,上述配置已经足够本书讲解使用。
2.1.2 Spring配置风格
activiti-context.xml配置文件的内容如代码清单2-2所示。
代码清单2-2 activiti-context.xml内容

activiti-context.xml的配置方式与activiti.cfg.xml的配置方式大体相似,因为两者本质上都是Spring配置方式。代码清单2-2中的第6~10行配置了事务管理器并为其设置数据源dataSource,数据源的定义可以参照activiti.cfg.xml中的定义。第12~18行定义了流程引擎配置类,第20~22行定义了流程引擎类并为其设置了processEngineConfiguration属性值,如果使用Spring配置风格,则必须定义流程引擎类,否则构造流程引擎实例对象时程序会报错,该步骤非常重要,可以参考2.3.5节的讲解。接下来,定义一个Spring配置风格的测试类以验证流程引擎类是否被实例化,如代码清单2-3所示。
代码清单2-3 ProcessEnginesTest.java

以上两种不同的配置方式使用了不同的流程引擎配置类,前者使用了标准的流程引擎配置类为StandaloneProcessEngineConfiguration,后者使用的引擎配置类为SpringProcess-EngineConfiguration(该类位于activiti-spring-5.21.0.jar程序包中)。SpringProcess-EngineConfiguration类顾名思义,通常情况下与Spring框架整合时需要使用该类。
约定
本书如果没有特殊说明,则流程引擎配置类均为StandaloneProcessEngineConfiguration,流程引擎类为ProcessEngine。