最近項目需要,學習了一下activiti5這個框架。
介紹工作流
網上工作流的定義一大堆,這裏就不去複製了,通俗的理解,工作流就是類似OA系統中請假審批、報銷審批等一系列流程,下級提交的申請只有直系領導才能審批,其他人是沒有權限的,而只有直系領導審批通過後,直系領導的直系領導纔可以看到申請,並進行審批,以此類推。。。
準備環境
1) JDK1.6或者更高版本(我這裏是使用1.8)
2) 支持的數據庫有:h2, mysql, oracle, postgres, mssql, db2等。
3) springboot以及SpringDataJpa配置
4) 開發環境爲eclipse 與 IDEA 2018 (練習爲eclipse 項目開發爲IDEA)
5)工作流版本(activiti5.22.0)這裏是項目需要,個人推薦學6或7
安裝流程設計器(IDEA)
1.搜索插件
點擊菜單【File】-->【Settings...】打開【Settings】窗口。
點擊左側【Plugins】按鈕,在右側輸出"actiBPM",點擊下面的【Search in repositories】鏈接會打開【Browse Repositories】窗口。
一開始沒有安裝過這個插件的會顯示No Plugins found.search inreposties
進入【Browse Repositories】窗口,選中左側的【actiBPM】,點擊右側的【Install】按鈕,開始安裝。
最後完成安裝。
安裝流程設計器(eclipse插件)
方案一:
在有網絡的情況下,安裝流程設計器步驟如下:
1) 打開 Help -> Install New Software. 在如下面板中:
2) 在如下Install界面板中,點擊Add按鈕:
3) 然後填入下列字段
Name: Activiti BPMN 2.0 designer
Location: http://activiti.org/designer/update/
4) 回到Install界面,在面板正中列表中把所有展示出來的項目都勾上:
5) 點擊複選框
在Detail部分記得選中 "Contact all updates sites.." , 因爲它會檢查所有當前安裝所需要的插件並可以被Eclipse下載.
6) 安裝完以後,點擊新建工程new->Other…打開面板,如果看到下圖內容:
說明安裝成功了。
方案二
在沒有網絡的情況下,安裝流程設計器步驟如下:
首先下載離線插件包:
https://files.cnblogs.com/files/lm970585581/activiti.zip
將壓縮包解壓後
這兩個文件夾複製到Eclipse根目錄下 ,重啓即可
注意:
打開菜單Windows->Preferences->Activiti->Save下流程流程圖片的生成方式:
雖然流程引擎在單獨部署bpmn文件時會自動生成圖片,但在實際開發過程中,自動生成的圖片會導致和BPMN中的座標有出入,在實際項目中展示流程當前位置圖會有問題。
所在完成以上配置後,會由我們自己來管理流程圖片。在發佈流程時把流程規則文件和流程圖片一起上傳就行了。
準備Activiti5開發環境
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-modeler</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-jpa</artifactId>
<version>5.22.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.activiti.check-process-definitions=false
spring.datasource.url=jdbc:mysql://?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.maxActive=20
spring.datasource.initialSize=4
spring.datasource.maxWait=60000
spring.datasource.minIdle=1
spring.datasource.testWhileIdle=true
spring.security.user.name=
spring.security.user.password=
環境準備完成!