學習資料:《Activiti實戰》
第一章 認識Activiti
2.1 下載Activiti
官網:http://activiti.org/download.html
進入下載頁后,可以看到最新版本的壓縮包、快速入門、用戶手冊、javadoc等。我下載的時候,最新版本是activiti-5.22.0.zip。
目錄結構:
database:
包含了activiti表的創建、刪除及版本升級三種類型的腳本。
創建和刪除腳本的命名規則:activiti.[oracle|postgres|db2|mssql|mysql|h2|hsql].[create|drop].[identity|engine|history].sql
版本升級腳本的命名規則:activiti.oracle.upgradestep.[5x].to.[5(x+1)].history
docs:
包含了javadocs、用戶手冊和xsd。用戶手冊包含了環境配置,十分鍾快速入門,各模塊使用教程。xsd中包含與流程定義相關的scheme。
libs:略。
war:略。
2.2 環境配置
jdk、maven、intellij。
2.3 配置文件介紹
2.3.1 activiti.cfg.xml
(1)processEngineConfiguration
activiti可以單獨使用,也可以與spring集成,所以配置文件有所區別。
單獨模式:
與spring集成:
(2)database
activiti支持的數據庫類型:
不論是單獨模式,還是與spring集成,database都可以有如下配置方式。
jdbc方式(spring集成時也類似,不再重復):
dataSource方式(spring集成時也類似,不再重復):
2.3.2 pom.xml
如果不與spring集成,只需要activiti-engine。
如果需要與spring集成,需要加上activiti-spring。其中spring的配置此處略。
如果需要使用activiti的modeler,需要加上activiti-modeler。
1 <!-- activiti --> 2 <dependency> 3 <groupId>org.activiti</groupId> 4 <artifactId>activiti-engine</artifactId> 5 <version>${activiti.version}</version> 6 </dependency> 7 8 <!-- activiti+spring --> 9 <dependency> 10 <groupId>org.activiti</groupId> 11 <artifactId>activiti-spring</artifactId> 12 <version>${activiti.version}</version> 13 </dependency> 14 15 <!-- activiti-modeler --> 16 <dependency> 17 <groupId>org.activiti</groupId> 18 <artifactId>activiti-modeler</artifactId> 19 <version>${activiti.version}</version> 20 </dependency>
2.4 完整的配置文件示例
(1)單獨模式 activiti.cfg.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://www.springframework.org/schema/beans 4 http://www.springframework.org/schema/beans/spring-beans.xsd"> 5 6 <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> 7 <property name="jdbcUrl" value="jdbc:h2:file:~/activiti-in-action-chapter7;AUTO_SERVER=TRUE" /> 8 <property name="jdbcDriver" value="org.h2.Driver" /> 9 <property name="jdbcUsername" value="sa" /> 10 <property name="jdbcPassword" value="" /> 11 12 <property name="databaseSchemaUpdate" value="true" /> 13 <property name="jobExecutorActivate" value="false" /> 14 </bean>
23 </beans>
(2)與spring集成 applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 3 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 5 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 6 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> 7 <!-- spring其他的配置略 --> 12 13 <!-- 數據源 --> 14 <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource"> 15 <property name="driverClass" value="org.h2.Driver" /> 16 <property name="url" value="jdbc:h2:file:~/activiti-in-action-chapter7;AUTO_SERVER=TRUE" /> 17 <property name="username" value="sa" /> 18 <property name="password" value="" /> 19 </bean> 20 44 <!-- Activiti引擎配置 --> 45 <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> 46 <property name="processEngineName" value="spring"></property> 47 <property name="dataSource" ref="dataSource" /> 48 <property name="transactionManager" ref="transactionManager" /> 49 <property name="databaseSchemaUpdate" value="true" /> 50 <property name="jobExecutorActivate" value="false" /> 51 <property name="deploymentResources" value="classpath*:/chapter7/leave.zip"></property> 52 </bean> 53 54 <!-- Activiti引擎工廠 --> 55 <bean id="processEngineFactory" class="org.activiti.spring.ProcessEngineFactoryBean"> 56 <property name="processEngineConfiguration" ref="processEngineConfiguration" /> 57 </bean> 58 59 <!-- Activiti的Service --> 60 <bean id="repositoryService" factory-bean="processEngineFactory" factory-method="getRepositoryService" /> 61 <bean id="runtimeService" factory-bean="processEngineFactory" factory-method="getRuntimeService" /> 62 <bean id="formService" factory-bean="processEngineFactory" factory-method="getFormService" /> 63 <bean id="identityService" factory-bean="processEngineFactory" factory-method="getIdentityService" /> 64 <bean id="taskService" factory-bean="processEngineFactory" factory-method="getTaskService" /> 65 <bean id="historyService" factory-bean="processEngineFactory" factory-method="getHistoryService" /> 66 <bean id="managementService" factory-bean="processEngineFactory" factory-method="getManagementService" /> 67 68 </beans>