activiti学习(九)

129 阅读2分钟

image.png 持续创作,加速成长!这是我参与「掘金日新计划 · 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:在创建流程引擎时创建表结构,在关闭流程引擎时删除表结构。