Activiti服務架構圖

在新版本中,我們通過實驗可以發現IdentityService,FormService 兩個Serivce 都已經刪除了。
activiticfg.xml文件
Activiti的引擎配置文件,包括ProcessEngineConfiguration的定義,數據源定義,事務管理器等,此文件其實就是一個spring配置文件,下面是一個基本的配置,只配置了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" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!--數據源--> <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="root"/> <property name="password" value="123"/> </bean> <!--配置Activiti使用的processEngine對象 默認命名為processEngineConfiguration--> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <!--注入數據源--> <property name="dataSource" ref="dataSource"/> <!--配置數據源方式二:--> <!--<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>--> <!--指定數據庫生成策略--> <property name="databaseSchemaUpdate" value="true"/> </bean> </beans>
ProcessEngineConfiguration流程引擎的配置類
通過ProcessEngineConfiguration可以創建工作流引擎ProceccEngine;
StandaloneProcessEngineConfiguration
通過org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;
Activiti可以單獨運行,使用它創建的ProcessEngine,Activiti會自己處理事務;
配置文件方式如下:
通過在activiti.cfg.xml配置文件中頂一個id為processEngineConfiguration的bean,這里會使用spring的依賴注入來構建引擎;
<!--配置Activiti使用的processEngine對象 默認命名為processEngineConfiguration-->
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<!--注入數據源-->
<property name="dataSource" ref="dataSource"/>
<!--配置數據源方式二:-->
<!--<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>-->
<!--指定數據庫生成策略-->
<property name="databaseSchemaUpdate" value="true"/>
</bean>
SpringProcessEngineConfiguration
通過org.activiti.spring.SpringProcessEngineConfiguration與spring整合;
創建spring與activiti的整合配置文件:
activiti-spring.cfg.xml(名稱不固定)
創建processEngineConfiguration
public static void main(String[] args) { //加載配置 ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource
("activiti.cfg.xml"); //獲取ProcessEngine對象 ProcessEngine processEngine = configuration.buildProcessEngine(); }
ProcessEngine
工作流引擎,相當於一個門面接口,通過ProcessEngineConfiguration創建ProcessEngine,通過ProcessEngine創建各個service接口;
一般創建方式
//獲取對象 ProcessEngine processEngine = configuration.buildProcessEngine();
簡單創建方式
將activiti.cfg.xml文件名及路徑固定,且activiti.cfg.xml文件中有processEngineConfiguration的配置,可以使用如下代碼創建processEngine;
//獲取ProcessEngine ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
service
service創建方式
通過ProcessEngine創建service,service是工作流引擎提供用於進行工作部署,執行,管理的服務接口;
方式如下:
//獲取RepositoryService對象進行流程部署 RepositoryService repositoryService = processEngine.getRepositoryService(); //獲取RuntimeService對象 RuntimeService runtimeService = processEngine.getRuntimeService(); //獲取TaskService對象進行流程部署 TaskService taskService = processEngine.getTaskService();
service總覽

RepositoryService
是activiti的資源管理類,提供了管理和控制流程發布包和流程定義的操作;使用工作流建模工具設計的業務流程圖需要使用此service將流程定義文件的內容部署到計算機;
除了部署流程定義以外還可以:查詢引擎中的發布包和流程定義;
暫停或激活發布包,對應全部和特定流程定義;暫停意味着他們不能再執行任何操作了,激活是對應的反向操作;
獲得多種資源,像是包含在發布包里的文件,或引擎自動生成的流程圖;獲得流程定義的pojo版本,可以用來通過java解析流程,而不必通過xml;
RuntimeService
它是activiti的流程運行管理類;可以從這個服務類中獲取很多關於流程執行相關的信息;
TaskService
它是activiti的任務管理類,可以從這個類中后去任務的信息;
HistoryService
它是activiti的歷史管理類,可以查詢歷史信息,執行流程時,引擎會保存很多數據(根據配置),比如流程實例啟動時間,任務的參與者,完成任務的時間,每個流程實例的執行路徑等等,這個服務主要通過查詢功能來獲取這些數據;
ManagementService
它是activiti的引擎管理類,提供了對activiti流程引擎的管理和維護功能,這些功能不在工作流驅動的應用程序中使用,主要用於activiti系統的日常維護;
