javascript
Activiti配置实例以及Spring集成配置
public class TestDB {public static void main(String[] args) {//1。 創建Activiti配置對象的實例ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();//2. 設置數據庫連接信息// 設置數據庫地址configuration.setJdbcUrl("jdbc:mysql://localhost:3306/activiti_test?createDatabaseIfNotExist=true");// 數據庫驅動configuration.setJdbcDriver("com.mysql.jdbc.Driver");// 用戶名configuration.setJdbcUsername("root");// 密碼configuration.setJdbcPassword("123456");// 設置數據庫建表策略(默認不會建表) configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);//3. 使用配置對象創建流程引擎實例(檢查數據庫連接等環境信息是否正確)ProcessEngine processEngine = configuration.buildProcessEngine();System.out.println(processEngine);}
public void testDBByProperties() throws Exception {// 1。 加載classpath下名為activiti.cfg.xml文件,創建核心流程引擎對象ProcessEngine processEngine = ProcessEngineConfiguration.
createProcessEngineConfigurationFromResource("activiti.cfg.xml").
buildProcessEngine();System.out.println(processEngine);//或者 private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();此方法默認和上面一樣 } }
activiti.cfg.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><!-- 數據庫連接配置 --><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_test?createDatabaseIfNotExist=true"></property><property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property><property name="jdbcUsername" value="root"></property><property name="jdbcPassword" value="mikesirius"></property><!-- 建表策略 --><property name="databaseSchemaUpdate" value="true"></property></bean></beans>Spring集成
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"><!-- 數據源 --><property name="dataSource" ref="dataSource" /><!-- 配置事務管理器,統一事務 --><property name="transactionManager" ref="transManager" /><!-- 設置建表策略 --><property name="databaseSchemaUpdate" value="true" /></bean><bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"><property name="processEngineConfiguration" ref="processEngineConfiguration" /></bean><!-- bean id repositoryServiceRepositoryServicie repositoryService = processEngine.getRepositoryService();--><bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" /><bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" /><bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" /><bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" /><bean id="formService" factory-bean="processEngine" factory-method="getFormService" /><!-- 流程相關的Service --><bean id="workflowService" class="activitiweb.service.impl.WorkflowServiceImpl"><property name="repositoryService" ref="repositoryService"></property><property name="runtimeService" ref="runtimeService"></property><property name="taskService" ref="taskService"></property><property name="formService" ref="formService"></property><property name="historyService" ref="historyService"></property></bean></beans>?
核心API介紹
1、ProcessEngine
在Activiti中最核心的類,其他的類都是由他而來。
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
可以通過processEngine 的get產生以下Service
| RepositoryService | 管理流程定義 |
| RuntimeService | 執行管理,包括啟動、推進、刪除流程實例等操作 |
| TaskService | 任務管理 |
| HistoryService | 歷史管理(執行完的數據的管理) |
| IdentityService | 組織機構管理 |
| FormService | 一個可選服務,任務表單管理 |
| ManagerService | ? |
2、RepositoryService
是Activiti的倉庫服務類。所謂的倉庫指流程定義文檔的兩個文件:bpmn文件和流程圖片。
3、RuntimeService
是activiti的流程執行服務類??梢詮倪@個服務類中獲取很多關于流程執行相關的信息。
4、TaskService
是activiti的任務服務類??梢詮倪@個類中獲取任務的信息。
5、ProcessDefinition
流程定義類??梢詮倪@里獲得資源文件等。
6、ProcessInstance
代表流程定義的執行實例。如范冰冰請了一天的假,她就必須發出一個流程實例的申請。一個流程實例包括了所有的運行節點。我們可以利用這個對象來了解當前流程實例的進度等信息。
從源代碼中可以看出ProcessInstance就是Execution,ProcessInstance繼承Execution
7、Execution
Activiti用這個對象去描述流程執行的每一個節點。在沒有并發的情況下,同ProcessInstance。
?
Activiti核心配置文件,配置流程引擎創建工具的基本參數和數據庫連接池參數。
定義數據庫配置參數:
jdbcUrl: 數據庫的JDBC URL。
jdbcDriver: 對應不同數據庫類型的驅動。
jdbcUsername: 連接數據庫的用戶名。
jdbcPassword: 連接數據庫的密碼。
基于JDBC參數配置的數據庫連接 會使用默認的MyBatis連接池。 下面的參數可以用來配置連接池(來自MyBatis參數):
jdbcMaxActiveConnections: 連接池中處于被使用狀態的連接的最大值。默認為10。
jdbcMaxIdleConnections: 連接池中處于空閑狀態的連接的最大值。
jdbcMaxCheckoutTime: 連接被取出使用的最長時間,超過時間會被強制回收。 默認為20000(20秒)。
jdbcMaxWaitTime: 這是一個底層配置,讓連接池可以在長時間無法獲得連接時, 打印一條日志,并重新嘗試獲取一個連接。(避免因為錯誤配置導致沉默的操作失敗)。 默認為20000(20秒)。
?
轉載于:https://www.cnblogs.com/cxyj/p/3877144.html
總結
以上是生活随笔為你收集整理的Activiti配置实例以及Spring集成配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linq中let关键字学习
- 下一篇: c# Ftp下载程序源代码解析