Activiti 在启动时,会读取数据源配置,用于对数据库进行相应的操作。
Activiti 默认使用 H2 数据库,H2 是一个开源的嵌入式数据库,使用 Java 语言编写。使用H2 数据库并不需要另外安装服务器或者客户端,只需要提供一个 jar 包即可使用。在实际的企业应用中,很少会使用这种轻量级的嵌入式数据库,因此 H2 数据更适合使用于单元测试。除 H2 数据库,Activiti 还为以下的数据库提供支持:
MySQL:主流数据库之一,它是一个开源的小型关系型数据库,由它体积小、速度快,得到相当多开发者的青睐,并且最重要的是,它是免费的。
Oracle:目前世界上最流行的商业数据库,价格昂贵,但是它高效的性能、可靠的数据管理,仍令不少企业心甘情愿为其掏钱。
Postgres:PostgreSQL 是另外一款开源的数据库。
DB2:由 IBM 公司研发的一款关系型数据库,其良好的伸缩性、数据库的高效性,让它成为继 Oracle 之后,又一应用广泛的商业数据库。
MSSQL:微软研发的一款数据库产品,目前也支持在 Linux 下使用。
Activiti 与 Spring
Spring 是目前非常流行的一个轻量级 J2EE 框架,它提供了一套轻量级的企业应用解决方案,它包括 IoC 容器、AOP 面向切面技术以及 Web MVC 框架等。
使用 Activiti 的项目,并不意味着一定要使用 Spring,Activiti 可以在没有 Spring 的环境中使用。虽然 Activiti 并不需要使用 Spring 环境,但是 Activiti 在创建流程引擎时,使用了 Spring 的 XML 解析与依赖注入功能,ProcessEngineConfiguration 对应的配置,即为Spring 中的一个 bean。
JDBC配置
JDBC 连接数据库,需要使用 jdbc url、jdbc 驱动、数据库用户名和密码,以下代码为连接 MySQL 的配置:
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<!-- JDBC url -->
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/act" />
<!-- JDBC 驱动 -->
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<!-- 数据库用户名 -->
<property name="jdbcUsername" value="root" />
<!-- 数据库密码 -->
<property name="jdbcPassword" value="123456" />
</bean>
以上代码配置一个 bean,表示一个 ProcessEngineConfiguration,并且使用“设值注入”的方式将四个数据库属性设置到该 bean 中,换言之,该 ProcessEngineConfiguration类中,肯定有相应属性的 setter 方法。
如果不使用第三方数据源,直接使用 Activiti 提供的数据源,那么还可以指定其他一些数据库属 性 。 Activiti默认使用的 是 myBatis 的 数 据 连 接 池 , 因此ProcessEngineConfiguration 中也提供了一些 MyBatis 的配置:
jdbcMaxActiveConnections:在数据库连接池内最大的活跃连接数,默认值为 10。
jdbcMaxIdleConnections:连接池最大的空闲连接数。