activiti的配置文件解析(activiti.cfg.xml)
- 了解相关字段信息
- ProcessEngine的配置
- 数据库的配置
- 数据库参数的动态获取
- Spring总体配置
一、了解相关字段
Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。
定义数据库配置参数:
1)jdbcUrl:数据库的JDBC URL。
2)jdbcDriver:对应不同数据库类型的驱动。
3)jdbcUsername:连接数据库的用户名。
4)jdbcPassword:连接数据库的密码。
基于JDBC参数配置的数据库连接 会使用默认的MyBatis连接池。下面的参数可以用来配置连接池(来自MyBatis参数):
1)jdbcMaxActiveConnections:连接池中处于被使用状态的最大值,默认为10.
2)jdbcMaxIdleConnections:连接池中处于空闲状态的连接的最大值。
3)jdbcMaxCheckoutTime:连接被取出来使用的最长时间,超时时间会被强制回收。默认为20000(20秒)。
4)jdbcMaxWaitTime:这是一个底层配置,让连接池可以在长时间无法获得连接时,打印一条日志,并重新尝试获取一个连接。(避免因为错误配置导致沉默的操作失败)。默认为20000(20秒)。
二、ProcessEngine的配置
注意:单独创建流程引擎与Spring方式创建流程引擎是不一样的,区别在于:ProcessEngineConfiguration的class。
单独:org.activiti.engine.impI.cfg.StandaloneProcessEngineConfiguration
Spring环境下:org.activiti.spring.SpringProcessEngineConfiguration
获得ProcessEngine的最简单办法是:
ProcessEngine processEngine = ProcessEngine.getDefaultProcessEngine();
2.1 单独模式
它会去读取classpath下的activiti.cfg.xml(
文件必须叫这个),基于这个配置来构建引擎。
2.2 Spring模式
如果要在Spring环境下使用流程引擎,配置文件名可以叫做spring-activiti.xml等
自定义的名字。
而且类要发生变化:org.activiti.spring.SpringProcessEngineConfiguration
然后,这个spring-activiti.xml文件要被引用,名称要对应。
比如我的项目里,是这么引用的:web.xml引用spring-app.xml,spring-app.xml引用spring-activiti.xml
三、数据库的配置
由前面可以知道,不管是单独模式还是spring模式,ProcessEngineConfiguration里面的属性配置是一样的。
但是数据库的配置也有两种方式。
3.1 JDBC方式
3.2 dataSource方式
四、数据库参数的动态获取
由前面可知,配置数据库时,是直接写的参数,这样不太好。建议把配置的参数单独写在一个文件里,然后value采取动态获取的方式。
dataSource方式和jdbc方式,动态获取的方式是一样的,就只写datasource下的了。
4.1 db.properties
4.2 spring-activiti.xml里动态获取
五、Spring总体配置
综上,我用的是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-activti.xml中的配置ProcessEngine这个bean,属性值是processEngineConfiguration.
4、spring-activiti.xml配置processEngineConfiguration,采用dataSource配置方式
5、dataSource的配置写在spring-db.xml里
6、dataSource里的参数采取动态获取,参数写在db.properties里