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 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

Spring Boot 结合 spring data jpa中的 DTO 映射查询《Spring Boot 开发实战》

我们知道,在 MyBatis 中直接 DTO 映射查询的时候,写起来非常简单。只要字段对应上即可:

875
来自专栏JavaWeb

Mybatis源码-XXXmapper.xml中的select|insert|update|delete标签解析过程

942
来自专栏fixzd

excel导出工具

通常使用的是无参构造函数。另外两个都需要自己实例化workbook对象,有三个参数的构造函数,需要传入workbook、标题行样式对象、数据行样式对象。关于样式...

651
来自专栏技术碎碎念

Mybatis插入数据后返回主键id

1293
来自专栏hbbliyong

c++/c 获取cpp文件行号跟文件名

编译器内置宏: 先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息。 ANSI C标...

2577
来自专栏MyBlog

Effective.Java 读书笔记(2)使用Builder

静态工厂和构造器都有一个限制,它们不能够很好地缩减大量地选项参数,想象一下一种情况,你的类有着很多的成员变量,有些必须填写有些可以选填,那么如果使用传统的构造方...

482
来自专栏专注 Java 基础分享

Spring框架学习之高级依赖关系配置(二)

     紧接着上篇内容,本篇文章将主要介绍XML Schema的简化配置和使用SpEL表达式语言来优化我们的配置文件。 一、基于XML Schema的简化配置...

18410
来自专栏Hongten

FreeMarker_模板引擎_代码自动生成器_源码下载

你可以到freemarker的官网上去,那里有很详细的介绍:http://freemarker.org/

881
来自专栏吴伟祥

java 常规类型消息的格式化 原

0.slf4j有一个common logger没有的功能,字符串中的{}会被替换,如下:

1185
来自专栏一枝花算不算浪漫

[Java拾遗三]JavaWeb基础之Servlet

31312

扫码关注云+社区