第5篇:Flowable-Modeler详述之开发环境搭建

接上一篇:
第4篇:Flowable-Modeler详述之流程概述
https://blog.csdn.net/weixin_40816738/article/details/102886712

文章目录

  • 一、环境搭建
    • 1. 下载/安装jdk
    • 2. 安装mysql 5.7
    • 3. 安装idea
    • 4. 配置maven
      • 4.1. 配置maven仓库
      • 4.2. mirrors中添加阿里服务器
      • 4.3. 在idea中配置maven
    • 5. 新建maven工程
    • 6. 新建子工程
  • 二、依赖引入
    • 2.1. 父工程maven依赖
    • 2.2. 子工程Maven依赖
  • 三 、案例演练
    • 3.1. 添加一个controller用来测试流程是否启动成功
    • 3.2. 新建接口
    • 3.3. 新建逻辑处理类
    • 3.4. 增加启动类和包扫描
    • 3.5. 配置yml文件
    • 3.6. 创建一个mysql数据库
    • 3.7. 启动服务
    • 3.8. mysql中的表总览
    • 3.9. 测试查看创建结果
    • 3.10 . 查看流程在表中的内容

前言:

  1. Flowable的modeler的环境已经搭建完成,并且可以绘制modeler模型了,我们绘制一个简>单的流程只有开始和结束的流程节点。
  2. 加入启动类,自动引入相关的使用的包。

一、环境搭建

1. 下载/安装jdk

-建议使用jdk 8

JDK环境变量配置_windows
https://blog.csdn.net/weixin_40816738/article/details/102893885

2. 安装mysql 5.7

win10 下安装、配置、启动mysql
https://blog.csdn.net/weixin_40816738/article/details/90112245

3. 安装idea

官网地址:https://www.jetbrains.com/idea/download/

IntelliJ IDEA 2019 下载安装
https://blog.csdn.net/weixin_40816738/article/details/90209326

4. 配置maven

4.1. 配置maven仓库

maven的配置 conf/settings.xml配置添加本地仓库如下:
在这里插入图片描述

<localRepository>D:\rep</localRepository>

在这里插入图片描述

4.2. mirrors中添加阿里服务器

在这里插入图片描述

   <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>

4.3. 在idea中配置maven

点击File->Settings按如下操作
在这里插入图片描述

5. 新建maven工程

【File】-【New Project】-,工程名为 flowablestudy
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

6. 新建子工程

  • 添加一个模块作为工程的一个子模块,在工程上点击右键,New->Module,配置模块如下:
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

二、依赖引入

2.1. 父工程maven依赖

  • pom中配置springboot的pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.gblfy</groupId><artifactId>flowablestudy</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>flowablelech5</module></modules><!--springboot 父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.1.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SpringBoot 拦截器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.13</version></dependency><dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>6.4.1</version></dependency><!--常用工具类 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency><!--集合常用工具类 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.2</version></dependency><!--io常用工具类 --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version></dependency><!--文件上传工具类 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency></dependencies>
</project>

2.2. 子工程Maven依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><groupId>com.gblfy</groupId><artifactId>flowablestudy</artifactId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>flowablelech5</artifactId><dependencies><dependency><groupId>org.flowable</groupId><artifactId>flowable-engine</artifactId><version>6.4.1</version><scope>compile</scope></dependency><dependency><groupId>org.flowable</groupId><artifactId>flowable-spring</artifactId><version>6.4.1</version><scope>compile</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.gblfy.FlowableApplication</mainClass><includeSystemScope>true</includeSystemScope></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
</project>

三 、案例演练

3.1. 添加一个controller用来测试流程是否启动成功

package com.gblfy.controller;import com.gblfy.service.IFlowService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap;
import java.util.Map;/*** @author gblfy* @ClassNme FlowController* @Description TODO* @Date 2019/11/4 13:58* @version1.0*/
@Controller
@RequestMapping(value = "flow")
public class FlowController {/*** 日志类*/private static final Logger log = LoggerFactory.getLogger(FlowController.class);/*** 流程处理服务*/@Autowiredprivate IFlowService flowService;@RequestMapping("/create")@ResponseBodypublic Map<String,String> createFlow(){Map<String,String> res =new HashMap<>();//        String flowPath ="E:\\flowablestudy\\flowablech5\\src\\main\\resources\\flows\\测试BPMN模型.bpmn20.xml";String flowPath ="C:\\Users\\gblfy\\Desktop\\Workflow\\flowablestudy\\flowablelech5\\src\\main\\resources\\processes\\测试BPMN模型.bpmn20.xml";if (null == flowService.createFlow(flowPath)){res.put("msg","创建流程失败");res.put("res","0");return res;}res.put("msg","创建流程成功");res.put("res","1");return res;}
}

3.2. 新建接口

  • 添加service查看提供流程的一些服务,本次只有一个启动流程的服务
  • IFlowService
package com.gblfy.service;import org.flowable.engine.repository.Deployment;/*** 流程服务类*/
public interface IFlowService {/*** 部署工作流*/Deployment createFlow(String filePath);
}

3.3. 新建逻辑处理类

  • FlowServiceImpl
package com.gblfy.service.impl;import com.gblfy.service.IFlowService;
import org.flowable.bpmn.converter.BpmnXMLConverter;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.Process;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.repository.Deployment;
import org.flowable.engine.repository.DeploymentBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;/*** @author gblfy* @ClassNme IFlowServiceImpl* @Description TODO* @Date 2019/11/4 14:01* @version1.0*/
@Primary
@Service
public class FlowServiceImpl implements IFlowService {/*** 日志类*/private static final Logger log = LoggerFactory.getLogger(FlowServiceImpl.class);/*** Flowable运行时服务*/@Autowiredprivate RepositoryService repositoryService;@Overridepublic  Deployment  createFlow(String filePath) {//解析BPMN模型看是否成功XMLStreamReader reader = null;InputStream inputStream = null;try {BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter();XMLInputFactory factory = XMLInputFactory.newInstance();inputStream=new FileInputStream(new File(filePath));reader = factory.createXMLStreamReader(inputStream);BpmnModel model = bpmnXMLConverter.convertToBpmnModel(reader);List<Process> processes = model.getProcesses();Process curProcess = null;if (CollectionUtils.isEmpty(processes)) {log.error("BPMN模型没有配置流程");return null;}curProcess = processes.get(0);inputStream=new FileInputStream(new File(filePath));DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().name("TEST_FLOW").addInputStream(curProcess.getName(),inputStream);Deployment deployment= deploymentBuilder.deploy();log.warn("部署流程 name:"+curProcess.getName() + " "+deployment);return deployment;}catch (Exception e){log.error("BPMN模型创建流程异常",e);return null;}finally {try {reader.close();} catch (XMLStreamException e) {log.error("关闭异常",e);}}}
}

3.4. 增加启动类和包扫描

package com.gblfy;import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;/*** @author gblfy* @ClassNme FlowableApplication* @Description TODO* @Date 2019/11/4 14:07* @version1.0*/
//扫描Service
@ComponentScan(basePackages = { "com.gblfy.**" })
//扫描Mapper
@MapperScan(basePackages = {"com.gblfy.**"})
@SpringBootApplication
public class FlowableApplication {private final static Logger logger = LoggerFactory.getLogger(FlowableApplication.class);public static void main(String[] args){logger.info("开始启动服务 ");SpringApplication.run(FlowableApplication.class,args);logger.info("完成启动服务 ");}
}

3.5. 配置yml文件

server:port: 8989tomcat:# tomcat的URI编码uri-encoding: UTF-8# tomcat最大线程数,默认为200max-threads: 200# Tomcat启动初始化的线程数,默认值25min-spare-threads: 30mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.gblfy  # 注意:对应实体类的路径# 数据源配置
spring:datasource:driverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/flowstudy?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMulQueries=true&&nullCatalogMeansCurrent=trueusername: rootpassword: root

3.6. 创建一个mysql数据库

  • flowstudy,设置编码为UTF-8
CREATE DATABASE /*!32312 IF NOT EXISTS*/`flowstudy` /*!40100 DEFAULT CHARACTER SET utf8 */;

3.7. 启动服务

启动的时候会自动创建我们需要的表,如果另外一个activity的示例安装过数据库,注意配置上面的启动项的参数,设置nullCatalogMeansCurrent=true,启动建表打印如下:
在这里插入图片描述

3.8. mysql中的表总览

在这里插入图片描述

3.9. 测试查看创建结果

在这里插入图片描述

3.10 . 查看流程在表中的内容

  • 部署ID表 act_re_deployment
    在这里插入图片描述
  • 部署内容表:act_ge_bytearray
    在这里插入图片描述

源码地址:
Gitlab链接:
https://gitlab.com/gb-heima/flowablestudy/tree/master/flowablelech5
码云地址:https://gitee.com/gb_90/flowable-study/tree/master/flowablelech5

下一篇:
第6篇:Flowable-Modeler详述之常见问题Table act_ge_property doesn’t exist
https://blog.csdn.net/weixin_40816738/article/details/102899408

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2018开年知识盛会】15位大咖直播分享,全方位解析NoSQL数据库

摘要&#xff1a; 2018年开年伊始&#xff0c;阿里云数据库团队将为大家带来一场别开生面的知识盛会&#xff0c;15位大咖汇聚云栖社区&#xff0c;带来18小时数据库干货分享&#xff01; 点此查看原文 2018年开年伊始&#xff0c;阿里云数据库团队将为大家带来一场别开生面的知…

SUSE,为企业云原生打造多模平台

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;如今&#xff0c;数字化转型已经成为大势所趋&#xff0c;没有完成数字化转型的企业将…

云端资源,“掌”握手中 ——关于 阿里云 App你不知道的五件事

摘要&#xff1a; 如果购买过阿里云的产品&#xff0c;亦或是关注着云计算的发展&#xff0c;那么你应该听说过阿里云官方推出的这款移动端应用 —— “阿里云 App”&#xff0c;它是云厂商中较早推出的移动端应用&#xff0c;功能较其他云厂商的移动端应用更为丰富。通过关注核…

php mysql5.7.110安装教程_MYSQL教程mysql5.7.19 winx64安装配置方法图文教程(win10)

《MYSQL教程mysql5.7.19 winx64安装配置方法图文教程(win10)》要点&#xff1a;本文介绍了MYSQL教程mysql5.7.19 winx64安装配置方法图文教程(win10)&#xff0c;希望对您有用。如果有疑问&#xff0c;可以联系我们。mysql 5.7.19 winx64安装教程记录如下,分享给大家MYSQL数据库…

Spring精华问答 | 为何使用Spring?

Spring框架是一个开源的Java平台,它提供了非常容易,非常迅速地开发健壮的Java应用程序的全面的基础设施支持。今天就让我们来看看关于Spring的精华问答吧。1Q&#xff1a;Spring的目标是什么&#xff1f;A&#xff1a;Spring官方主页&#xff08;http://spring.io&#xff09;有…

javaweb初体验

javaweb初体验 文章目录 javaweb初体验前言一、流程&#xff1a;1.创建Maven的父工程2.创建Maven&#xff0c;Webapp的子工程3.在pom.xml文件中添加依赖&#xff08;父工程与子工程共用&#xff09;4.写一个helloservlet类实现httpservlet接口&#xff0c;重写doget&#xff0c…

python高考查分_python爬虫 查询全国大学专业的录取情况

估计很多人在填报高考自愿的时候都会难以选择学校&#xff0c;有自己心仪的专业&#xff0c;但是在网上搜了半天也不能确定填哪一所学校。如果填了录取分数线低的&#xff0c;那将会浪费很多分数&#xff0c;表示有点遗憾。如果没有录取上&#xff0c;那就更遗憾了… 在我们想根…

第6篇:Flowable-Modeler详述之常见问题Table act_ge_property doesn't exist

接上一篇&#xff1a; 第5篇&#xff1a; Flowable-Modeler详述之开发环境搭建 https://blog.csdn.net/weixin_40816738/article/details/102887854 文章目录1. 问题描述2. 问题定位解决方案一解决方案二(推荐)1. 问题描述 在配置完Springboot的开发环境以后&#xff0c;启动的…

微服务架构之「 配置中心 」

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;奎哥来源&#xff1a;不止思考 在微服务架构的系列文章中&#xff0c;前面已经通过文章《微服务架构之「服务网关 」》介绍过了在微服务中服务网关的原理和应用&#xff0c;今天这篇文章我们继续来聊一聊微服务中另…

助力APP尽情“撒币”!阿里云正式上线移动直播问答解决方案

摘要&#xff1a; 2018年伊始&#xff0c;互联网圈就刮起了一阵“大佬狂撒币&#xff0c;网友喜答题”的热潮&#xff0c;为了助力企业紧握风口&#xff0c;阿里云推出一站式移动直播问答解决方案。通过稳定高性能的计算基础设施和可扩展的直播问答系统架构&#xff0c;实现技术…

阿里云云数据库开了一个未来大会,谈了谈2038年的数据库趋势

摘要&#xff1a; “未来的某一天&#xff0c;量子数据库是我们改造其他星球的关键技术之一。” 1月17日&#xff0c;在北京举行的阿里云2018云数据库智能未来大会上&#xff0c;阿里云高级产品专家王义成如是说。 除了阿里云的全新一代NoSQL向NewSQL融合&#xff0c;NewSQL产品…

《游戏行业DDoS攻击解决方案》重磅发布

摘要&#xff1a; 游戏行业一直是竞争、攻击最为复杂的一个江湖。曾经多少充满激情的创业团队、玩法极具特色的游戏产品&#xff0c;被互联网攻击的问题扼杀在摇篮里&#xff1b;又有多少运营出色的游戏产品&#xff0c;因为遭受DDoS攻击&#xff0c;而一蹶不振。游戏行业在防御…

红帽:将开源进行到底

戳蓝字“CSDN云计算”关注我们哦&#xff01;2019年7月9日&#xff0c;IBM史上最大的一笔收购案终于尘埃落定&#xff0c;IBM以每股现金190.0美元&#xff0c;完成对红帽所有已发行和流通在外普通股的收购交易&#xff0c;总股本价值约340亿美元。至此&#xff0c;红帽这家全球…

第7篇:Flowable-Modeler集成之Flowable源码编译

接上一篇&#xff1a; 第6篇&#xff1a;Flowable-Modeler详述之常见问题Table act_ge_property doesn’t exist https://blog.csdn.net/weixin_40816738/article/details/102899408 文章目录一、背景二、Flowable源码下载2.1. 参考文章&#xff1a;2.2. Flowable完整源码编译2…

众安每秒3.2万张保单的背后,阿里云输出了什么能力?

摘要&#xff1a; 当传统保险公司还在将“开门红”作为重中之重提前几个月做准备的时候&#xff0c;互联网保险公司关注的则是“双十一”和“双十二”。2017年双十一当日&#xff0c;刚刚在香港上市的众安保险的保单量突破3亿&#xff0c;比2014年增长超过200%。 点此查看原文&…

第8篇:Flowable-Modeler集成之Flowable-modeler源码编译

接上一篇&#xff1a; 第7篇&#xff1a;Flowable-Modeler集成之Flowable源码编译 https://blog.csdn.net/weixin_40816738/article/details/102899693 文章目录一、背景二、源码下载三、思路分析与目标3.1. 分析modeler3.2. Modeler模块编译&#xff0c;启动3.2.1. POM修改3.2…

iOS unrecognized selector crash 自修复技术实现与原理解析

摘要&#xff1a; 在开发中 unrecognized selector sent to instance XXXXX 是非常常见的 crash 类型。这篇博文主要介绍如何在客户端自修复该问题&#xff0c;并进行原理解析。 作者介绍&#xff1a;阿里云-移动云-大前端团队。 点此查看原文&#xff1a;http://click.aliyun.…

阿里测试环境运维及研发效率提升之道

摘要&#xff1a; 生产环境最关注的就是稳定&#xff0c;测试环境更关注的是研发效率&#xff0c;如何从一行代码最快的保证质量发到线上去&#xff0c;这个是我们测试环境最关注的。在全球运维大会上&#xff0c;阿里巴巴研发效能事业部运维中台技术专家——刘湘疆&#xff08…

首批8款5G手机获3C认证:华为占4款;IBM获AT&T“几十亿美元”云计算合同;马库斯:未来薪酬将以Libra发放...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

第9篇:Flowable-Modeler集成以及集成代码下载

接上一篇&#xff1a; 第8篇&#xff1a;Flowable-Modeler集成之Flowable-modeler源码编译 https://blog.csdn.net/weixin_40816738/article/details/102901026 文章目录一、背景二、代码修改&#xff0c;去除认证2.1. 修改拦截请求2.2. 修改用户查询信息2.3. 账号查询请求修改…