ProcessEngineConfiguration 流程引擎配置对象
ProcessEngineConfiguration代表activiti全部配置的对象.该对象提供了一系列创建ProcessEngineConfiguration实例的静态方法.这些方法用于读取和解析相应的配置文件,并返回实例.
读取默认配置的配置文件
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
使用默认方式创建配置实例.
底层实现
public static ProcessEngineConfiguration createProcessEngineConfigurationFromResourceDefault() {
return createProcessEngineConfigurationFromResource("activiti.cfg.xml", "processEngineConfiguration");
}
通过classpath根目录下的activiti.cfg.xml来创建processEngineConfiguration实例.其中xml解析和bean的创建由spring来完成.
自定义配置文件
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("my_activiti.xml");
在根目录定义my_activiti.xml,然后使用自定义的xml来创建processEngineConfiguration实例.
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8" />
<property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="xxx" />
</bean>
自定义xml同时可以自定义bean名称.
public static ProcessEngineConfiguration createProcessEngineConfigurationFromResource(String resource, String beanName) {
return BeansConfigurationHelper.parseProcessEngineConfigurationFromResource(resource, beanName);
}
文件流方式加载配置
ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(InputStream xx);
使用StandaloneProcessEngineConfiguration方式
public static ProcessEngineConfiguration createStandaloneProcessEngineConfiguration() {
return new StandaloneProcessEngineConfiguration();
}
设置默认this.databaseSchemaUpdate = false ,this.jdbcUrl = jdbc:h2:tcp://localhost/~/activiti
使用createStandaloneInMemProcessEngineConfiguration方式
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
属于StandaloneProcessEngineConfiguration子类,
这种方式是不需要任何配置文件,底层返回StandaloneInMemProcessEngineConfiguration这个类,默认设置了数据配置和jdbcurl。
public class StandaloneInMemProcessEngineConfiguration extends StandaloneProcessEngineConfiguration {
public StandaloneInMemProcessEngineConfiguration() {
this.databaseSchemaUpdate = "create-drop";
this.jdbcUrl = "jdbc:h2:mem:activiti";
}
}
数据源配置
activiti默认是h2数据库。同时支持MySQL、Oracle、postagesql、DB2等数据库。
jdbc配置
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8" />
<property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="xxx" />
</bean>
DBCP数据源配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8" />
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
<bean id="processEngineConfiguration1" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource"/>
</bean>
C3P0数据源配置
<bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8" />
<property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
<property name="user" value="root" />
<property name="password" value="123456" />
</bean>
<bean id="processEngineConfiguration2" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource2"/>
</bean>
activiti数据库策略配置
就是启动和结束时如何处理数据库。
ProcessEngineConfiguration.dataSchemaUpdate属性有三个值:
- false: 默认值,启动时比对数据库中的表和版本,如果不存在表或者版本不一致则报错,适用于正式环境。
- true:设置之后,数据库中表会更新,如果不存在表则会创建。适用于开发环境。
- create-drop或者(drop-create): activiti启动时创建表,结束时删除表,适用于单元测试。
设置databaseType配置
可以设置数据库类型
- h2
- mysql
- oracle
- postgres
- mysql
- db2
其他配置
history配置
db-history-used 在springboot整合activiti7时,这个属性是配置是否使用历史表,如果设置true,则会创建历史相关表,否则不创建。默认为false。
history配置有几种级别:
- none:不保存任何历史数据,在流程执行过程中,效率最高。
- activity:保存流程实例和流程行为,其他数据不保存。
- audit: 除了保存activity相关数据之外,还会保存流程任务及其属性配置,是默认级别。
- full:最高级别,除了保存audit相关数据之外,还保存其他全部细节数据,包括流程参数等。
asyncExecutorActivate配置
配置异步执行器是否启动,默认为false,如果启动,会启动定时器扫描并执行各种工作,如果扫描到符合执行条件的工作,则会启动一条线程由线程池调用执行。