前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >activiti学习笔记(一) 获取流程配置实例

activiti学习笔记(一) 获取流程配置实例

作者头像
cfs
发布于 2018-03-08 07:07:50
发布于 2018-03-08 07:07:50
845212
代码可运行
举报
文章被收录于专栏:编码小白编码小白
运行总次数:12
代码可运行

activiti获取流程配置实例

流程配置的获取方法api

       流程配置的获取共有七种方法,但是只分为三类,一类是根据配置文件路径进行获取、一类是根据流文件获取、还有一类是构建一个空的实例,根据类的默认属性来获取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /**
   * @author 郑小康
   * 流程引擎配置共有七种方法
   * 方法1 方法2调用的实际是方法3
   * 方法4 调用其实就是方法5
   * 方法6 和方法7是相同
   * */

  //方法1
  //实际调用的方法三只不过默认beanName是processEngineConfiguration,resource为activiti.cfg.xml
  public static ProcessEngineConfiguration createProcessEngineConfigurationFromResourceDefault() {
    return createProcessEngineConfigurationFromResource("activiti.cfg.xml", "processEngineConfiguration");
  }

  //方法2
  public static ProcessEngineConfiguration createProcessEngineConfigurationFromResource(String resource) {
    return createProcessEngineConfigurationFromResource(resource, "processEngineConfiguration");
  }

  //方法3
  //主要实现过程获取资源位置路径,以及beanName来获取对应的ProcessEngineConfiguration实例
  public static ProcessEngineConfiguration createProcessEngineConfigurationFromResource(String resource, String beanName) {
    return BeansConfigurationHelper.parseProcessEngineConfigurationFromResource(resource, beanName);
  }

  //方法4
  public static ProcessEngineConfiguration createProcessEngineConfigurationFromInputStream(InputStream inputStream) {
    return createProcessEngineConfigurationFromInputStream(inputStream, "processEngineConfiguration");
  }

  //方法5
  //同方法一二三相同,只不过是以文件流来创建ProcessEngineConfiguration实例
  public static ProcessEngineConfiguration createProcessEngineConfigurationFromInputStream(InputStream inputStream, String beanName) {
    return BeansConfigurationHelper.parseProcessEngineConfigurationFromInputStream(inputStream, beanName);
  }

  //方法6
  //创建一个实例,在即再手动注入数据库相关属性通过其父类ProcessEngineConfigurationImpl来进行实现
  public static ProcessEngineConfiguration createStandaloneProcessEngineConfiguration() {
    return new StandaloneProcessEngineConfiguration();
  }

  //方法7
  //继承了StandaloneProcessEngineConfiguration,只是在这个基础上设置了 databaseSchemaUpdate的属性和jdbcUrl
  public static ProcessEngineConfiguration createStandaloneInMemProcessEngineConfiguration() {
    return new StandaloneInMemProcessEngineConfiguration();
  }

流程配置的bean方法配置

       第一种和第二种方法都是都是需要在配置文件中创建对应的标签元素,定义属性值,结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<property name="url">
			<value>jdbc:mysql://127.0.0.1:3306/activiti-study?useUnicode=true&characterEncoding=UTF-8
			</value>
		</property>
		<property name="username">
			<value>root</value>
		</property>
		<property name="password" value="" />
	</bean>

	<bean id="processEngineConfigurationxQ"
		class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
		<property name="dataSource" ref="dataSource" />
		<property name="databaseSchemaUpdate" value="true" />
	</bean>

</beans>

流程配置的获取过程

    下面展示一些其具体获取过程,测试方法一是根据文件路径获取、测试方法二是根据文件流获取、测试方法三是通过set注入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private final String cfgXml =  System.getProperty("user.dir") + "/activiti/config/activiti.cfg.xml";
	//方法1 2 3 的实现方式
	@Test
	public void createProcessEngineConfigurationFromResource() {
		ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(cfgXml);
		System.out.println(processEngineConfiguration);
		ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
		System.out.println(processEngine);

		processEngineConfiguration =ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(cfgXml,"processEngineConfiguration");
		System.out.println(processEngineConfiguration);
		processEngine=processEngineConfiguration.buildProcessEngine();
		System.out.println(processEngine);
	}

	//方法4 和 5实现的方法方式
	@Test
	public void createProcessEngineConfigurationFromInputStream() throws IOException {
		InputStream in = new FileInputStream(cfgXml);
		ProcessEngineConfiguration configurationFromInputStream = ProcessEngineConfiguration
				.createProcessEngineConfigurationFromInputStream(in);
		System.out.println(configurationFromInputStream);
	}

	//方法6 和 7实现的方式
	@Test
	public void createStandaloneInMemProcessEngineConfiguration() {
		ProcessEngineConfiguration pec = ProcessEngineConfiguration
				.createStandaloneInMemProcessEngineConfiguration();
		pec.setJdbcDriver("com.mysql.jdbc.Driver");
		pec.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/activiti-study?useUnicode=true&characterEncoding=UTF-8");
		pec.setJdbcUsername("root");
		pec.setJdbcPassword("");
		System.out.println(pec);
	}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年08月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
2 条评论
热度
最新
POST的微信接口地址是什么?
POST的微信接口地址是什么?
回复回复3举报
现在流行写东西写一半吗?请求地址给个啊
现在流行写东西写一半吗?请求地址给个啊
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
linux学习-bash shell 编程
保存退出,加运行权限chmod u+x hello.sh(当前用户运行权限 ,a+x 所有人运行权限), 运行./hello.sh
solate
2019/07/22
3.9K0
01·Shell编程基础入门
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
3220
01·Shell编程基础入门
Bash 编程
有时,你可能希望像在命令行上那样运行命令,并将该命令的结果存储在一个变量中。我们可以通过将命令用美元符号和圆括号($())括起来来实现这一点。这种语法叫作命令替换 。例如:
章鱼猫先生
2021/10/15
4.5K0
Bash基础训练指南
从这个 Bash 基础训练课程,我们将学习 Bash 的基础知识,并能开始些我们自己的 Bash 脚本和自动化日常任务。
Lemon黄
2020/09/28
2.2K0
快速学习Bash
Shell是Linux下经典的文本互动方式,而Bash是现在最常用的一种Shell。我在这里总结了Bash的要点知识。 Shell综述 Linux图形化桌面算不上精美。幸好,Linux提供了更好的与树莓派互动的方式:Shell。打开终端(Terminal),桌面上就会出现一个黑色背景的窗口,里面就运行着一个Shell。如果你敲击键盘,会发现字符会显示在$提示符的后面,形成一串文本形式的命令。所谓的Shell,就是运行在终端中的文本互动程序。Shell分析你的文本输入,然后把文本转换成相应的计算机动作。 在后
Vamei
2018/01/18
1.8K0
【Shell编程】快速入门变量、字符串、传递参数
Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。
陶然同学
2023/02/24
1.3K0
【Shell编程】快速入门变量、字符串、传递参数
SHELL(bash)脚本编程二:语法
token 是指被shell看成一个单一单元的字符序列 bash中包含三种基本的token:保留关键字,操作符,单词。 保留关键字是指在shell中有明确含义的词语,通常用来表达程序控制结构。包括:
用户5030870
2019/04/11
1.4K0
SHELL(bash)脚本编程一:变量
本篇开始,介绍shell脚本编程,更确切的说是bash脚本编程(版本:4.2.46(1)-release)。我们从变量开始。
用户5030870
2019/04/11
2.8K0
Shell编程从入门到精通
Shell 是一个用 C 语言编写的程序, 通过 Shell 用户可以访问操作系统内核服务。 它类似于 DOS 下的 command 和后来的 cmd.exe。 Shell既是一种命令语言,又是一种程序设计语言。
硅谷子
2020/12/19
8950
Shell编程从入门到精通
【编程基础】Linux脚本新手入门篇
shell脚本在我们日常开发中比不可少,开源代码编译移植更是经常使用,用它来记录和管理我们编译。或许有人觉得开源代码,都为我们实现了,如configure MakeFile等。我们还有必要去自己在写吗? 答案是肯定的,我们用少量的脚本来完成重复的工作,提高效率。比如 configure有一堆参数需要我们设置,且有x86版本和arm版本编译它们的配置参数各不相同,一般情况下我会新建两个脚本来解决,建立一个build-x86.sh 和build-arm.sh 来配置编译参数。 我们就写个说说如何写个简单脚本
程序员互动联盟
2018/03/12
9360
【编程基础】Linux脚本新手入门篇
Shell 编程(3)-bash 配置文件
用户登录系统时,bash 会进行一系列操作,如加载各种 bash 配置文件,设置或清空一些列的变量,有时还会执行一些自定义的命令。
懒人的小脑
2019/01/26
1.5K0
Shell 编程(3)-bash 配置文件
shell编程菜鸟教程_java并发编程实战 pdf
Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令,并把它送入内核去执行。内核是Linux系统的心脏,从开机自检就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存。Shell是一种应用程序,当用户登录Linux系统时,Shell就会被调入内存去执行。Shell独立于内核,它是连接内核和应用程序的桥梁,并由输入设备读取命令,再将其转为计算机可以理解的机械码,Linux内核才能执行该命令。
全栈程序员站长
2022/09/23
4.6K0
shell编程菜鸟教程_java并发编程实战 pdf
linux之shell编程(一)
大家,周末晚上好,今天来分享linux里面的shell编程(一种脚本编程),哦不,正确的说,你或许应该早就了解过脚本编程,比如说很火的python。嗯,不扯别了,趁着周末多给大家更文,之前有过半个月没更文,真对不住各位了,还有以前的文章排版也是一塌糊涂,不过庆幸的是,现在比较稍微好多了,也离不开各位网友给的意见。下面就开始详细介绍shell了:
用户6280468
2022/03/21
6530
Shell基础 -- 入门篇
shell 英文含义是“壳”,这是相对于内核来说的,shell 也确实就像是内核的壳,通常来说,所有对内核的访问都要经由 shell 。同时,shell 还是一门功能强大的编程语言。shell 是 Linux 学习中必然要经过的一环。实际上,Linux 系统在启动完成,登录成功后运行的第一个程序就是一个 shell ,Linux 的许多功能都可以从 shell 中轻松实现。
知忆
2021/06/24
5750
一文入门Shell编程
Shell 编程是在 Linux 和类 Unix 系统上编写脚本的一种强大的方式。Shell 是用户和操作系统内核之间的接口,它提供了一种以脚本形式执行命令和控制系统的方法。以下是一份简短的 Shell 编程基础知识,包括基础概念和示例。
Linux兵工厂
2024/03/01
1850
一文入门Shell编程
Shell编程
Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。
用户4870038
2021/02/05
5K0
Shell编程
shell脚本编程之路1
(1)前言 Shell是什么? 答:Shell(壳)本身是一个用C语言编写的程序也是一个是解释执行的脚本语言即命令解释器,它在操作系统最外层是用户使用Unix/Linux的桥梁,把用户输入解释给操作系统等待操作系统处理后,将结果输出返回给用户,用户的大部分工作都是通过Shell完成的,还是一个功能强大的编程语言,易编写,易调试,灵活性较强。
全栈工程师修炼指南
2022/09/28
2.7K0
shell脚本编程之路1
一起来学shell bash编程(2)
首先我们先回顾一下,上次推文主要介绍了bash编程的基础知识,还有一些基本的代码规范。如果你还没读过上次的推文,请不要犹豫先点击下面的链接。
生信菜鸟团
2020/11/11
2K0
bash运行脚本的几种方式 转
bash shell 脚本执行的方法有多种,本文作一个总结,供大家学习参考。 假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之内,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。 方法二:以绝对路径的方式去执行bash shell脚本:
wuweixiang
2018/12/13
2.4K0
Linux Bash基础(一)
介绍Bash之前首先介绍Shell,shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。用来区别与核,相当于是一个命令解析器,Shell有很多中,这里列出其中几种 :
xxpcb
2020/08/04
10.2K0
相关推荐
linux学习-bash shell 编程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验