对于工作流,在公司边摸索边开发,断断续续弄了三四个月,全都是泪啊。开始这里的工作流博客是为了自己整理思路逻辑,也为后面的人对工作流的开发有一个思路引导。

刚毕业不到半年吧,公司用到的是springboot,刚开始的时候逼格没有觉得springboot有过人的地方,但时间久了以后发现,springboot比以前使用的SSH与SSM都要方便的好多,特别是配置文件,对各种框架配置文件头疼的人,springboot的确是福音。此处的工作流项目就是基于springboot开发的,因为熟知的惰性缘故,以前并没有写关于springboot这一块的博客,嗯....,以后补上,此处不多讲关于springboot的知识,主要讲activiti的开发。

对于activiti,已经有了starter,不需要我们过多考虑activiti的依赖关系,只要在maven添加下面引用即可,此处使用的是5.X的版本,因为使用6.X版本有问题(具体问题忘记是什么的,该死该死,当时没有记笔记....,哎总以为自己记性会特别好,其实一点也不是....)。

<dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter-basic</artifactId><version>5.20.0</version>
</dependency>

在application.yml中添加一下配置,其中database-schema-update是在运行的时候会检测activiti系统表是否存在,如果不存在会自动创建;history-level是在activiti完成一个环节后,保留在历史表(以act_hi开头的表)中的数据的级别,full全部保存;check-process-definitions表示不让activiti检测processes这个文件夹,如果不置为false会报错,这个文件夹中要保存的是bpmn20.xml文件,我们不一定要写死bpmn20.xml文件,所以将其置位false。在application.yml中配置数据库请自行配置。

spring:activiti:database-schema-update: truehistory-level: fullcheck-process-definitions: false

上述配置完成后,运行这个项目就可以自动创建数据库表了,记得自己配置数据库啊,博客只是作为思路引导,千万别懒省事。

此时工作流的各个方法类已经注册到spring中了,只需要各个方法就行了。对了,关于activiti主要类与主要数据表,bpmn以及如何画在下一个博客中,此处只讲如果快速搭建工作流项目。

    @Autowiredprotected ProcessEngine processEngine;@Autowiredprotected RepositoryService repositoryService;@Autowiredprotected RuntimeService runtimeService;@Autowiredprotected TaskService taskService;@Autowiredprotected HistoryService historyService;

-----------------------------------------------------------分割线--------------------------------------------------------------------------------

做这个分割线原因是,我们在开发的时候,测试的时候不一定要运行整个项目,运行整个项目来测试一个方法对开发者来说是件头疼的事情,如果我们写一个main方法就可以进行运行岂不更省事,下面说如何操作。

将activiti.cfg.xml添加到resources目录下,主要是数据库的连接,以及存储bpmn时的字体,防止乱码的出现。

<beans xmlns="http://www.springframework.org/schema/beans"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"><bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti" /><property name="jdbcDriver" value="com.mysql.jdbc.Driver" /><property name="jdbcUsername" value="root" /><property name="jdbcPassword" value="root" /><!--<property name="dataSource" ref="dataSource"/>--><property name="activityFontName" value="宋体"/><property name="labelFontName" value="宋体"/><!--  每次构建流程引擎时都会进行版本检测 --><property name="databaseSchemaUpdate" value="true" /><property name="asyncExecutorActivate" value="false" /><!-- 择定制历史存储的配置 --><property name="history" value="audit" /></bean>
</beans>

在main方法中创建数据库表

public class CreateActivitiDB {public static void main(String[] args){ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault().setDatabaseSchemaUpdate("create").buildProcessEngine();}
}

在mian方法中测试activiti时,我们需要手动创建ProcessEngine、RepositoryService 等各个方法。

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService = processEngine.getRepositoryService();

部署一个工作流。第二个参数是bpmn的路径。

/**部署工作流*/
public void deploymentProcessDefinition(String processDefinitionKey,String resourceClassPath){DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();Deployment deployment = deploymentBuilder.name(processDefinitionKey).addClasspathResource(resourceClassPath).deploy();logger.info("deployment name: {}",deployment.getName());logger.info("deployment id: {}",deployment.getId());
}

工作流项目的搭建其实很简单,但对于bpmn的创建以及各个方法的混合运用确实有点麻烦,所谓会者不难,难者不会,只要对工作流了解透彻了,后期开发会方便很多。本人也不敢说彻底了解activiti,毕竟刚毕业不久,现在做的主要是使用,对源码的分析一点也没有做,写博客也是让自己清晰思路的一种方法吧。

 github上有我更多的笔记:Raray-chuan (兮川) · GitHub,欢迎stars与following,如果有问题可以在issue中向我咨询

关注我的公众号,获取更多关于后端、大数据的知识

一. activiti项目的搭建相关推荐

  1. 众筹网站项目第一天之项目环境搭建和环境测试

    打开原教程视频 注:本人是编程小白,这个是我第一个尝试的项目,编写该系列博客是为了记录第一次做项目的经历,其中肯定会有不少不成熟的操作甚至错误之处,如果可以,希望大神指出,谢谢大家. 资料准备 点击获 ...

  2. 美多后台管理和项目环境搭建

    美多后台管理 Django框架已经提供了一个Admin管理后台,但是Admin的本身的页面可修改的页面布局效果比较少,无法满足公司定制页面需求,这时候就需要独立开发一套后台管理系统,满足公司对后台数据 ...

  3. Android组件化打造知乎日报系列(一)—— 项目架构搭建

    Android组件化打造第三方知乎日报系列(一)-- 项目架构搭建 本节完整代码可以前往github查看,项目地址:github.com/N0tExpectEr- Android组件化打造知乎日报系列 ...

  4. (三) Angular2项目框架搭建心得

    前言: 在哪看到过angular程序员被React程序员鄙视,略显尴尬,确实Angular挺值得被调侃的,在1.*版本存在的几个性能问题,性能优化的"潜规则"贼多,以及从1.*到2 ...

  5. 从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储+服务+抽象接口模式...

    前言 1.@LearningCoding 小伙伴关于用Sqlsugar在mysql数据库上的研究成果: sqlsugarcore支持mysql等数据库,在DbContext里面只需要设置dbtype为 ...

  6. 搭建项目_跟着团子学SAP PS:项目模版搭建

    项目结构是整个PS模块最为核心的主数据,因为项目结构的搭建体现了企业管理项目的思路(按什么维度分解WBS等)以及颗粒度(WBS的层级,活动的多少等),而最终我们会将讨论成型的项目结构在SAP中以模版的 ...

  7. linux基本项目环境搭建

    文章目录 linux基本项目环境搭建 java环境搭建 获取java源码包 解压 配置环境变量 使配置文件生效 验证 nginx安装 下载(java也可用此方法下载) 解压 配置(configure) ...

  8. Hibernate框架--学习笔记(上):hibernate项目的搭建和常用接口方法、对象的使用

    一.什么是Hibernate框架: 1.Hibernate是一个操作数据库的框架,实现了对JDBC的封装: 2.Hibernate是一个ORM(对象关系映射)框架,我们在写程序时 ,用的是面向对象的方 ...

  9. 淘淘商城项目mysql服务器_SpringMVC+Spring+Mybatis+Mysql+Maven+Svn[ 淘淘商城项目环境搭建 ]...

    背景:淘淘商城项目的环境搭建 说明:采用SpringMVC+Spring+Mybatis+Mysql+Maven+Svn结构搭建,在开发之中可以参考其结构和搭建步骤去搭建实际的工程项目 工程结构简图: ...

最新文章

  1. 威胁生存!科学家警告灾难性“气候临界点”已逼近
  2. 初识Restful架构
  3. java日志处理汇总
  4. 软件工程的七条基本原理:经典
  5. (一)、http原理
  6. 【旅行】——出发!露营去。
  7. [JS-BOM]BOM概念与组成
  8. ios多线程 -- NSOperation 简介
  9. html字符串生成器源代码
  10. 搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?
  11. python输出引号内的变量值_引号中的Python变量值
  12. mac php mysql 环境_Mac下配置PHP+MySql环境
  13. 动图展示16个Sublime Text快捷键用法 ---------------物化的sublime
  14. 【转】C++实用技巧(三)
  15. 基金投资入门 5:基金的业务类型及交易中的费用
  16. 岭回归(Ridge Regression)、OLS和吉洪诺夫正则化(Тихонов regularization)
  17. matlab误码率理论,PSK理论误码率与实际误码率MATLAB仿真程序
  18. 腾讯云数据库TDSQL-C(原CynosDB)的外网访问配置
  19. cesium 添加广告牌
  20. Excel按不同的字体颜色对数据区域分类汇总求和

热门文章

  1. “我知道”和“我做到了”的差距
  2. python编程写完需要几年驾龄_编程小白怎么学Python,大概要多久才能学好?
  3. Windows Vista 官方中文正式版(MSDN)(转载)
  4. 牛客练习赛72-Abrz的杯子brz的雪糕
  5. 温补晶振及压控晶振的技术资料与应用
  6. 阿里最新丰碑:国内第一本凤凰架构,全面构建可靠大型分布式系统
  7. MFS分布式文件系统一
  8. DDD专家张逸:《解构领域驱动设计》前言
  9. 鸿蒙系统能用wps吗,WPS Office
  10. 这5个电脑软件提高工作效率1000%,装机必备