衆所周知,Activiti作爲Java中的高級框架,Activiti 是一個針對企業用戶、開發人員 、系統管理員的輕量級工作流業務管理平臺,其核心是使用 java 開發的快速 、 穩定的 BPMN2.0 流程引擎 。它可以與 spring 完美集成。
現在開始我們進入Activiti的學習
第一步:我們在數據庫創建表activiti,表中不需要有任何的數據
create database activiti
第二步:創建一個Maven項目,這裏就不做演示了
第三步:配置文件activiti.cfg.xml
<?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.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="010126" />
</bean>
<!--activiti單獨運行的ProcessEngine配置對象(processEngineConfiguration)
默認情況下:bean的id=processEngineConfiguration
要改變bean的名稱,部署時需要在代碼中添加bean的id:例子:processEngineConfiguration01
ProcessEngineConfiguration processEngineConfiguration=ProcessEngineConfiguration .createProcessEngineConfigurationFromResource("activiti.cfg.xml","processEngineConfiguration01");
-->
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<!--數據源-->
<property name="dataSource" ref="dataSource"></property>
<!--是否生成表結構-->
<property name="databaseSchemaUpdate" value="true"/>
</bean>
</beans>
創建類ActivitiDeploymenTest,從表創建的角度看,有兩種方式
第一種方式:
public void testGenTableOne(){
//創建ProcessEngine對象
ProcessEngine processEngine= ProcessEngines.getDefaultProcessEngine();
System.out.println(processEngine);
}
第二種方式:
public void testGenTableTwo(){
//1:創建ProcessEngineConfiguration對象
//第一個參數:配置文件名稱 第二個參數是processEngineConfiguration的bean的id
ProcessEngineConfiguration processEngineConfiguration=
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//2:創建ProcessEngine對象
ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
//3;輸出ProcessEnine對象
System.out.println(processEngine);
}
部署分析:
以上兩種方式都是可以的,但是相較於第二種方式,第一種的條件會比較多
第一種方式的條件:
- 項目中activiti配置文件名稱:activiti.cfg.xml
- activiti.cfg.xml配置bean的id必須是"processEngineConfiguration",並且不可改變
第二種方式需要注意:
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
由於bean的id默認時processEngineConfiguration,如果需要改變成processEngineConfiguration01那麼需要添加bean的id
ProcessEngineConfiguration processEngineConfiguration=
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml","processEngineConfiguration01");
運行後結果:
私人建議:
兩種方法都有各自的優缺點,第一種方式比較侷限性,第二種方式代碼多一些,activiti的很多功能實現都是需要獲取ProcessEngine對象,所以建議可以做一個工具封裝,需要用到的時候調用即可
public class ReturnProcessEngineUtil {
//Id未改變
public static ProcessEngine getProcessEngine(){
ProcessEngineConfiguration processEngineConfiguration=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
return processEngine;
}
//Id改變
public static ProcessEngine getProcessEngine(String beanName){
ProcessEngineConfiguration processEngineConfiguration=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml",beanName);
ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
return processEngine;
}
}
調用
ProcessEngine processEngine= ReturnProcessEngineUtil.getProcessEngine();
原創文章,未經允許禁止盜用