流程引擎类的配置
流程引擎配置类的作用流程引擎配置xml
流程引擎配置xml流程引擎配置类及其子类
ProcessEngineConfiguration是一个抽象类,他的实现类在idea中可以使用control+H的快捷键获取到:
屏幕快照 2018-09-22 上午11.31.20.png
创建流程引擎配置对象
创建流程引擎配置对象数据库配置
屏幕快照 2018-09-22 上午11.44.01.png 屏幕快照 2018-09-22 上午11.45.47.png 屏幕快照 2018-09-22 上午11.47.08.png 屏幕快照 2018-09-22 上午11.49.04.png 屏幕快照 2018-09-22 上午11.49.41.png示例
如果我们使用了默认的H2数据库,那么创建流程引擎方式为:
ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
ProcessEngine processEngine = cfg.buildProcessEngine();
String name = processEngine.getName();
其中创建方法实现如下:
public static ProcessEngineConfiguration createStandaloneInMemProcessEngineConfiguration() {
return new StandaloneInMemProcessEngineConfiguration();
}
public StandaloneInMemProcessEngineConfiguration() {
this.databaseSchemaUpdate = DB_SCHEMA_UPDATE_CREATE_DROP;
this.jdbcUrl = "jdbc:h2:mem:activiti";
}
从实现中可以看出这个方法的确是使用H2数据库实现持久化的,另外this.databaseSchemaUpdate = DB_SCHEMA_UPDATE_CREATE_DROP;
这句设置表示相关表结构在流程引擎创建时自动建立,结束时自动销毁。当然这种方式并不适合于生产情况,而使用于单元测试中。
当然创建流程引擎的方法有很多种,查看流程引擎配置类源码如下:
屏幕快照 2018-09-22 下午12.35.13.png
如果我们使用
createProcessEngineConfigurationFromResource(String resource, String beanName)
需要传入配置xml名称和配置类名,默认配置文件在/src/main/source/目录下,比如此处建立一个activiti-cfg.xml文件,并且内部配置的bean名称为processEngineConfiguration,实现如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_activiti" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="123456" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
使用配置文件的优点就在于可以直观的配置我们想要的数据库连接和各种相关配置。
上述示例配置使用的是默认的mybatis数据库连接池,如果想使用其他的连接池,只需要修改配置如下:
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref=”dataSource” />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/activiti" />
<property name="username" value="root" />
<property name="password" value="********" />
</bean>
这样就可以在dataSource在这个连接池配置中配置连接数等信息了。
添加了activiti.cfg.xml文件后,就可以使用如下的方式实例化流程引擎配置类了:
ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
网友评论