91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

activiti認識以及數據庫和插件配置

發布時間:2020-07-01 00:00:11 來源:網絡 閱讀:954 作者:張濤澤 欄目:數據庫

 工作流介紹

工作流(Workflow),就是通過計算機對業務流程自動化執行管理。它主要解決的是“使在多個參與者之間按照某種預定義的規則自動進行傳遞文檔、信息或任務的過程,

從而實現某個預期的業務目標,或者促使此目標的實現”

 

         Activiti

Alfresco軟件在2010年5月17日宣布Activiti業務流程管理(BPM)開源項目的正式啟動,其首席架構師由業務流程管理BPM的專家 Tom Baeyens擔任,Tom Baeyens就是原來jbpm的架構師,

而jbpm是一個非常有名的工作流引擎,當然activiti也是一個工作流引擎。

Activiti是一個工作流引擎, activiti可以將業務系統中復雜的業務流程抽取出來,使用專門的建模語言(BPMN2.0)進行定義,業務系統按照預先定義的流程進行執行,

實現了業務系統的業務流程由activiti進行管理,減少業務系統由于流程變更進行系統升級改造的工作量,從而提高系統的健壯性,同時也減少了系統開發維護成本。

 

  BPM

BPM(Business Process Management),即業務流程管理,是一種以規范化的構造端到端的卓越業務流程為中心,以持續的提高組織業務績效為目的系統化方法

 

  BPMN

BPMN(Business Process Model And Notation)- 業務流程模型和符號 是由BPMI(Business Process Management Initiative)開發的一套標準的業務流程建模符號,

使用BPMN提供的符號可以創建業務流程。 2004年5月發布了BPMN1.0規范.BPMI于2005年9月并入OMG(The Object 新航道培訓Management Group對象管理組織)組織。OMG于2011年1月發布BPMN2.0的最終版本.

activiti就是采用bpmn2.0進行建模

 

 

關于流程的兩個常用到的關鍵詞  流程定義 ,流程實例

他們的關系就像java類和java對象一樣

1流程實例(ProcessInstance):a和b都發起了一個病假,那么就產生了兩個病假的流程實例

2流程定義(ProcessDefinition):a和b請的病假就是一個流程定義

 

  activiti服務架構圖

activiti認識以及數據庫和插件配置

 

上面的架構說白了就是通過activiti.cfg.xml獲取引擎配置對象ProcessEngineConfiguration

通過這個配置對象獲取引擎對象ProcessEngine,

最后可以通過引擎獲取各個service來進行流程的處理

下面簡介各個service的作用

 

RepositoryServiceactiviti的資源管理類 ,用于流程部署,獲取流程部署的資源。。
RuntimeServiceactiviti的流程運行管理類,用于啟動一個流程實例,操作當前運行的流程信息
TaskServiceactiviti的任務管理類,操作個人任務,組任務
HistoryServiceactiviti的歷史管理類,用于操作歷史 流程信息
IdentityServiceactiviti的用戶身份管理類,設置用戶、組(角色)、用戶和組關系 。。
FormServiceactiviti的表單管理類,實現activiti中配置表單數據。
ManagerServiceactiviti的引擎管理類,用于activiti運行的監控,給超級管理員使用。

 

 

下面是activi的安裝

Activiti下載地址:http://activiti.org/download.html(我用的5.14版本)

下載好了后目錄結構

 

 activiti認識以及數據庫和插件配置

database里面就有我們需要的數據庫,activiti支持多種數據庫

h3, mysql, oracle, postgres, mssql, db2

我這里采用mysql做演示

 

創建數據庫的方式

需要加入spring的jar包和mybatis的jar,最好是ssm都有的環境下進行測試

  1. 方式1

到目錄下database-create找到mysql的三個sql導入到自己創建的數據庫中

  1. 方式2

采用程序創建的方式

在classpath目錄下建立activiti.cfg.xml(為什么在這個位置建立名稱為這個的后面說)

activiti認識以及數據庫和插件配置

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd 
        http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.1.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.1.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="ferwms" />
        <property name="password" value="ferwms" />
        <property name="maxActive" value="3" />
        <property name="maxIdle" value="1" />
    </bean>
    <bean id="processEngineConfiguration"
        class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- 數據源 -->
        <property name="dataSource" ref="dataSource" />
        <!-- activiti數據庫表處理策略 -->
        <property name="databaseSchemaUpdate" value="true" />
    </bean></beans>

activiti認識以及數據庫和插件配置

 

其實就是一個spring的配置

大家會發現在上面的processEngineConfiguration里面有一個參數databaseSchemaUpdate是數據庫處理的策略,幾種策略如下

false(默認):檢查數據庫表的版本和依賴庫的版本, 如果版本不匹配就拋出異常。

true: 構建流程引擎時,執行檢查,如果需要就執行更新。 如果表不存在,就創建。(常用)

create-drop: 構建流程引擎時創建數據庫表, 關閉流程引擎時刪除這些表。

drop-create:先刪除表再創建表。(常用,使用完成后改為true)

create: 構建流程引擎時創建數據庫表, 關閉流程引擎時不刪除這些表。

 

我們選擇的是true,所以在創建流程引擎的時候會檢查不存在就創建

下面的程序得到流程引擎對象

activiti認識以及數據庫和插件配置

/從classpath目錄下查找resource名稱的xml(如果不指定就默認activiti.cfg.xml)//從里面找出bean的id為processEngineConfiguration的流程引擎配置類,//當然也有其他的構造類可以指定bean的idString resource = "activiti.cfg.xml";
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.
                createProcessEngineConfigurationFromResource(resource);        
//根據流程配置對象獲取引擎,發現策略是true,//也就是沒有數據庫就創建數據庫,所以會自動創建activiti的數據庫ProcessEngine processEngine = configuration.buildProcessEngine();

activiti認識以及數據庫和插件配置

 

activiti認識以及數據庫和插件配置

/*
     * 獲取流程引擎對象嗎,下面的方法會默認查找classpath目錄下的名稱為activi.cfg.xml
     * 里面bean的id為processEngineConfiguration的ProcessEngineConfiguration引擎配置對象來獲取ProcessEngine對象    */    
    ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();

activiti認識以及數據庫和插件配置

上邊兩端代碼獲取流程引擎對象的作用是一樣的,但是下方的獲取方式需要注意xml的位置和命名規范

創建完的數據庫

activiti認識以及數據庫和插件配置

 

那么不同的名稱的作用是什么

ACT_RE_*: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態資源 (圖片,規則,等等)。

ACT_RU_*: 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數據。 Activiti只在流程實例執行過程中保存這些數據, 在流程結束時就會刪除這些記錄。 這樣運行時表可以一直很小速度很快。

ACT_ID_*: 'ID'表示identity。 這些表包含身份信息,比如用戶,組等等。

ACT_HI_*: 'HI'表示history。 這些表包含歷史數據,比如歷史流程實例, 變量,任務等等。

ACT_GE_*: GE表示general。通用數據, 用于不同場景下。

 

 

eclipse下activiti-designer插件的安裝(繪制流程圖生成bpmn文件)

注意,插件需要另外單獨下載(百度一下就有),不是上面官方的哪個帶jar的壓縮包!!!

首先需要知道這個插件的作用

安裝了這個插件就可以在eclipse中根據bpmn2.0的規則繪制流程圖,流程圖文件是已bpmn結尾的,說白了畫完圖后用記事本打開就是xml,不過格式是bpmn的而已

安裝步驟:

我這里使用eclipse-indigo版本,其他出問題

1打開eclipse創建myplugins文件夾

2將上面的activiti文件解壓放進去

3打開eclipse下的dropins創建文件activiti.txt

4設置里面內容為path=d:\\eclipse\\activiti  地址是你eclipse自己的地址

5重啟eclipse,右擊新建-other可以找到activiti

 

 

windows-preference點上這個,可以在生成bpmn文件的同時生成一張流程的png文件,因為activiti代碼生成的會亂碼,需要修改源碼,很麻煩

 

activiti認識以及數據庫和插件配置

 

 

打開windows-showView-other   打開properties視圖,可以更方便修改bpmn流程圖

activiti認識以及數據庫和插件配置


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳阳市| 崇礼县| 武隆县| 建湖县| 晋宁县| 三台县| 闸北区| 鲁山县| 彭山县| 平南县| 新乡县| 大埔县| 曲松县| 浮梁县| 安国市| 揭东县| 潮安县| 牙克石市| 屏山县| 汾阳市| 崇礼县| 鹰潭市| 临夏县| 泊头市| 福鼎市| 潜江市| 鹤庆县| 鄯善县| 商洛市| 尼勒克县| 离岛区| 皋兰县| 新巴尔虎右旗| 商城县| 龙里县| 集安市| 色达县| 盐源县| 福安市| 甘泉县| 乐安县|