Activiti(一)創建表

衆所周知,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);
    }

部署分析:

以上兩種方式都是可以的,但是相較於第二種方式,第一種的條件會比較多

第一種方式的條件:

  1. 項目中activiti配置文件名稱:activiti.cfg.xml
  2. 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();

 



原創文章,未經允許禁止盜用



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章