持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
Activiti的使用
Activiti流程引擎的创建我们会了,接下来看看Activiti中API的使用。
Activiti中数据库的配置
在Activiti引擎中使用两种方法来配置数据库。第一种是定义数据库的JDBC属性:
- jdbcUrl:数据库的JDBC URL。
- jdbcDriver:实现驱动程序的特定的数据库类型。
- jdbcUsername:用户名连接到数据库。
- jdbcPassword:密码连接到数据库。 MyBatis的连接池设置默认会给予我们配置的数据源JDBC属性进行构建。下面的属性可以被设置为调整连接池(取自MyBatis文档):
- jdbcMaxActiveConnections:连接池在任何时候最多可以包含的活动连接数。默认值为10。
- jdbcMaxIdleConnections:连接池在任何时候最多可以包含的空闲连接数。
- jdbcMaxCheckoutTime:强制返回连接之前,可以从连接池中签出连接的时间量(以毫秒为单位)。默认值为20000(20秒)。
- jdbcMaxWaitTime:这是一个低级别设置,当连接花费异常长的时间时(为了避免在池配置错误时永远无提示地失败),池有机会打印日志状态并重新尝试获取连接。默认值为20000(20秒)。 如下是一个配置的示例:
<property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
<property name="jdbcDriver" value="org.h2.Driver" />
<property name="jdbcUsername" value="sa" />
<property name="jdbcPassword" value="" />
在使用数据源时,推荐用其它框架实现的数据源,而不是用mybatis默认的实现,如:DBCP, C3P0, Hikari, Tomcat Connection Pool等: 如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/activiti" />
<property name="username" value="activiti" />
<property name="password" value="activiti" />
<property name="defaultAutoCommit" value="false" />
</bean>
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
...
需要这注意的是,如果你使用的是第三方的数据库连接池实现的话,需要在pom文件里引用数据源的实现包。 不管你使用的是JDBC还是数据源方法,都可以设置以下属性:
- databaseType:通常不需要指定此属性,因为它是从数据库连接元数据自动分析的。仅在自动检测失败时指定。可能的值:{h2、mysql、oracle、postgres、mssql、db2}。此设置将确定将使用哪些创建/删除脚本和查询。有关支持哪些类型的概述,请参阅支持的数据库部分。
- databaseSchemaUpdate:允许设置在进程引擎启动和关闭时处理数据库表结构。
-
- false(默认):在创建流程引擎时,对照库检查DB架构的版本,如果版本不匹配,则引发异常。
-
- true:在构建流程引擎时,将执行检查,并在必要时执行架构更新。如果表不存在,则会创建它。
- create-drop:在创建流程引擎时创建表结构,在关闭流程引擎时删除表结构。