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

activiti获取流程配置实例

流程配置的获取方法api

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

 /**
   * @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方法配置

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

<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注入

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);
	}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JMCui

Redis学习一(基础入门).

一、前言     Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、key-Value 的数据库、并提供多...

39650
来自专栏偏前端工程师的驿站

Java魔法堂:类加载机制入了个门

一、前言                                 当在CMD/SHELL中输入 $ java Main<CR><LF> 后,Main程序...

21870
来自专栏JavaEdge

JVM内存模型1 程序计数器2. Java虚拟机栈(JVM Stack)3. 本地方法栈(Native Method Stack)4 Java堆(Java Heap)5 方法区6 直接内存(Direc

49690
来自专栏皮皮之路

【JVM】浅谈双亲委派和破坏双亲委派

笔者曾经阅读过周志明的《深入理解Java虚拟机》这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自己读的有多粗糙,也体会到只有实践...

30920
来自专栏无题

堆外内存概要

DirectByteBuffer JDK中使用 DirectByteBuffer对象来表示堆外内存,每个 DirectByteBuffer对象在初始化时,都会创...

25540
来自专栏WindCoder

《Linux内核分析》之计算机是如何工作的 实验总结

马马虎虎学完了Python课程,一直想学下linux,看到里面有个linux的就选上了。当初没细看,如今听完第一节课有点傻眼,竟然糊里糊涂给自己找了一科汇编语言...

13210
来自专栏JavaEE

java基础知识02

1、String字符串: 字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。用length()方法获取长度。

8520
来自专栏乐百川的学习频道

设计模式(二十三) 模板模式

模板模式也是一种行为型模式,而且它非常好理解。当我们解决问题需要固定几个步骤, 这些步骤的顺序不能改变,而步骤的具体实现可以变化的时候,就可以使用模板模式。模板...

17660
来自专栏Java技术栈

设计模式之动态代理模式实战

昨天分享了静态代理的概念及存在的缺点,所以今天讲的动态代理模式十分重要。动态代理在我们工作当中应用相当广泛,如Srping AOP就是动态代理的在开源框架的比较...

35640
来自专栏C/C++基础

Linux命令(11)——col命令

col命令是一个标准输入文本过滤器,它从标准输入读取内容,输出到标准输出。在许多UNIX说明文件里,包含控制字符。当我们运用Shell特殊字符>和>>,把说明文...

11120

扫码关注云+社区

领取腾讯云代金券