参考来自activiti的用户手册。
activiti的配置文件解析
1.processEngine的配置
注意,单独创建流程引擎与spring方式创建流程引擎是不一样的,区别在于:processEngineConfiguration的class。
单独:org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration
spring环境下:org.activiti.spring.SpringProcessEngineConfiguration
获得processEngine的最简单办法是:
(1)单独模式
它会去读取classpath下的activiti.cfg.xml(文件名必须叫这个),基于这个配置来构建引擎。
(2)Spring模式
如果要在spring环境下使用流程引擎,配置文件名可以叫做spring-activiti.xml等自定义的名字。
而且类要发生变化:org.activiti.spring.SpringProcessEngineConfiguration
然后这个spring-activiti.xml文件要被引用,名字要对应。
比如我的项目里,是这么引用的:web.xml引用spring-app.xml,spring-app.xml引用spring-activiti.xml。
2.数据库的配置
由前面可以知道,不管是单独模式还是spring模式,processEngineConfiguration里面的属性配置是一样的。
但是数据库的配置也有两种方式。
(1)jdbc方式
(2)dataSource方式
3.数据库参数的动态获取
由前面可知,配置数据库时,是直接写的参数,这样不太好。建议把配置的参数单独写在一个文件里,然后value采取动态获取的方式。
dataSource方式和jdbc方式,动态获取的方式是一样的,就只写datasource下的了。
(1)db.properties
(2)spring-activiti.xml里动态获取
综上,我用的是spring模式+dataSource方式+动态获取。涉及的文件有:web.xml,spring-app.xml,spring-activiti.xml,spring-db.xml,db.properties.
所以总的配置过程如下:
1. web.xml引用spring的总配置文件 spring-app.xml。
2.spring-app.xml引用spring-activiti.xml 和 spring-db.xml。
3.spring-activiti.xml中配置ProcessEngine这个bean,属性值是processEngineConfiguration。
4.spring-activiti.xml配置processEngineConfiguration,采用dataSource配置方式。
5.dataSource的配置写在spring-db.xml里。
6.dataSource里的参数采取动态获取,参数写在db.properties里。