潍坊 营销型网站建设,亚马逊html编辑器,网站备案幕布尺寸,周口学做网站接上一篇#xff1a; 第4篇#xff1a;Flowable-Modeler详述之流程概述 https://blog.csdn.net/weixin_40816738/article/details/102886712 文章目录一、环境搭建1. 下载/安装jdk2. 安装mysql 5.73. 安装idea4. 配置maven4.1. 配置maven仓库4.2. mirrors中添加阿里服务器4.3… 接上一篇 第4篇Flowable-Modeler详述之流程概述 https://blog.csdn.net/weixin_40816738/article/details/102886712 文章目录一、环境搭建1. 下载/安装jdk2. 安装mysql 5.73. 安装idea4. 配置maven4.1. 配置maven仓库4.2. mirrors中添加阿里服务器4.3. 在idea中配置maven5. 新建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 . 查看流程在表中的内容前言 Flowable的modeler的环境已经搭建完成并且可以绘制modeler模型了我们绘制一个简单的流程只有开始和结束的流程节点。加入启动类自动引入相关的使用的包。 一、环境搭建
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配置添加本地仓库如下
localRepositoryD:\rep/localRepository4.2. mirrors中添加阿里服务器 mirroridalimaven/idnamealiyun maven/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//urlmirrorOfcentral/mirrorOf/mirror4.3. 在idea中配置maven
点击File-Settings按如下操作
5. 新建maven工程
【File】-【New Project】-,工程名为 flowablestudy
6. 新建子工程
添加一个模块作为工程的一个子模块在工程上点击右键New-Module,配置模块如下
二、依赖引入
2.1. 父工程maven依赖
pom中配置springboot的pom文件
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.gblfy/groupIdartifactIdflowablestudy/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmoduleflowablelech5/module/modules!--springboot 父工程--parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.1.RELEASE/version/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- SpringBoot 拦截器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion1.3.2/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.13/version/dependencydependencygroupIdorg.flowable/groupIdartifactIdflowable-spring-boot-starter/artifactIdversion6.4.1/version/dependency!--常用工具类 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.4/version/dependency!--集合常用工具类 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-collections4/artifactIdversion4.2/version/dependency!--io常用工具类 --dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.5/version/dependency!--文件上传工具类 --dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.3.3/version/dependency/dependencies
/project2.2. 子工程Maven依赖
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentgroupIdcom.gblfy/groupIdartifactIdflowablestudy/artifactIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdflowablelech5/artifactIddependenciesdependencygroupIdorg.flowable/groupIdartifactIdflowable-engine/artifactIdversion6.4.1/versionscopecompile/scope/dependencydependencygroupIdorg.flowable/groupIdartifactIdflowable-spring/artifactIdversion6.4.1/versionscopecompile/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationmainClasscom.gblfy.FlowableApplication/mainClassincludeSystemScopetrue/includeSystemScope/configurationexecutionsexecutiongoalsgoalrepackage/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 MapString,String createFlow(){MapString,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();inputStreamnew FileInputStream(new File(filePath));reader factory.createXMLStreamReader(inputStream);BpmnModel model bpmnXMLConverter.convertToBpmnModel(reader);ListProcess processes model.getProcesses();Process curProcess null;if (CollectionUtils.isEmpty(processes)) {log.error(BPMN模型没有配置流程);return null;}curProcess processes.get(0);inputStreamnew 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?serverTimezoneAsia/ShanghaiuseUnicodetruecharacterEncodingutf8autoReconnecttruezeroDateTimeBehaviorconvertToNulluseSSLtrueallowMulQueriestruenullCatalogMeansCurrenttrueusername: rootpassword: root3.6. 创建一个mysql数据库
flowstudy,设置编码为UTF-8
CREATE DATABASE /*!32312 IF NOT EXISTS*/flowstudy /*!40100 DEFAULT CHARACTER SET utf8 */;3.7. 启动服务
启动的时候会自动创建我们需要的表如果另外一个activity的示例安装过数据库注意配置上面的启动项的参数设置nullCatalogMeansCurrenttrue启动建表打印如下:
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