参考来自activiti的用户手册。
activiti的配置文件解析
1.processEngine的配置
注意,单独创建流程引擎与spring方式创建流程引擎是不一样的,区别在于:processEngineConfiguration的class。
单独:org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration
spring环境下:org.activiti.spring.SpringProcessEngineConfiguration
获得processEngine的最简单办法是:
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151325129-72913261.png)
(1)单独模式
它会去读取classpath下的activiti.cfg.xml(文件名必须叫这个),基于这个配置来构建引擎。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151343472-879200701.png)
(2)Spring模式
如果要在spring环境下使用流程引擎,配置文件名可以叫做spring-activiti.xml等自定义的名字。
而且类要发生变化:org.activiti.spring.SpringProcessEngineConfiguration
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151358191-1509611061.png)
然后这个spring-activiti.xml文件要被引用,名字要对应。
比如我的项目里,是这么引用的:web.xml引用spring-app.xml,spring-app.xml引用spring-activiti.xml。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151421988-240870946.png)
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151427379-1022340610.png)
2.数据库的配置
由前面可以知道,不管是单独模式还是spring模式,processEngineConfiguration里面的属性配置是一样的。
但是数据库的配置也有两种方式。
(1)jdbc方式
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151446160-860683879.png)
(2)dataSource方式
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151454082-1938686631.png)
3.数据库参数的动态获取
由前面可知,配置数据库时,是直接写的参数,这样不太好。建议把配置的参数单独写在一个文件里,然后value采取动态获取的方式。
dataSource方式和jdbc方式,动态获取的方式是一样的,就只写datasource下的了。
(1)db.properties
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151513254-887242870.png)
(2)spring-activiti.xml里动态获取
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151521269-1067901574.png)
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151700363-2132686620.png)
综上,我用的是spring模式+dataSource方式+动态获取。涉及的文件有:web.xml,spring-app.xml,spring-activiti.xml,spring-db.xml,db.properties.
所以总的配置过程如下:
1. web.xml引用spring的总配置文件 spring-app.xml。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151846441-1521161682.png)
2.spring-app.xml引用spring-activiti.xml 和 spring-db.xml。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151713004-1226288660.png)
3.spring-activiti.xml中配置ProcessEngine这个bean,属性值是processEngineConfiguration。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151720113-129545827.png)
4.spring-activiti.xml配置processEngineConfiguration,采用dataSource配置方式。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151727363-4386849.png)
5.dataSource的配置写在spring-db.xml里。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151734175-247422258.png)
6.dataSource里的参数采取动态获取,参数写在db.properties里。
![](https://images2015.cnblogs.com/blog/980658/201702/980658-20170216151756847-842429680.png)