11.配置flowable

 2017-08-17 08:13:55  跟我学flowable  roy
 (3945)  (0)

一、Flowable5.0与Flowable6.0的差异

Flowable5.0基本上除了jar的名称更改成了Flowable名称,package的名称还是沿用了Activiti的命名。Flowable6.0后才把package的名称更改为Flowable的。

二、配置Flowable

配置Flowable分为两种:

1.普通环境方式

    一般配置文件命名为activiti.cfg.xml(在flowable5.0中)、flowable.cfg.xml(在flowable6.0中)

    配置对象的bean一定要设置id为processEngineConfiguration

    需要引入flowable的核心jar

    配置文件内容为:


<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="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
			<property name="jdbcUrl" value="jdbc:h2:mem:flowable;DB_CLOSE_DELAY=1000" />
			<property name="jdbcDriver" value="org.h2.Driver" />
			<property name="jdbcUsername" value="sa" />
			<property name="jdbcPassword" value="" />
		
			<property name="databaseSchemaUpdate" value="true" />
		
			<property name="asyncExecutorActivate" value="false" />
		
			<property name="mailServerHost" value="mail.my-corp.com" />
			<property name="mailServerPort" value="5025" />
	bean>
beans>

2.Spring环境方式

    一般配置文件命名为activiti-context.xml(在flowable5.0中)、flowable-context.xml(在flowable6.0中)

     配置对象的bean一定要设置id为processEngineConfiguration

    需要引入flowable的核心jar和flowable-spring整合的jar

    配置文件内容为:

xml version="1.0" encoding="UTF-8"?>
<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="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource">property>
	bean>
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="org.h2.Driver" />
		<property name="url" value="jdbc:h2:mem:flowable;DB_CLOSE_DELAY=1000" />
		<property name="username" value="sa" />
		<property name="password" value="" />
	bean>
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<property name="jdbcUrl" value="jdbc:h2:mem:flowable;DB_CLOSE_DELAY=1000" />
		<property name="jdbcDriver" value="org.h2.Driver" />
		<property name="jdbcUsername" value="sa" />
		<property name="jdbcPassword" value="" />
		<property name="dataSource" ref="dataSource" />
		<property name="transactionManager" ref="transactionManager" />

		<property name="databaseSchemaUpdate" value="true" />

		<property name="asyncExecutorActivate" value="false" />

		<property name="mailServerHost" value="mail.my-corp.com" />
		<property name="mailServerPort" value="5025" />

		<property name="databaseType" value="h2" />
	bean>
	<bean class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="springProcessEngineConfiguration" />
	bean>

beans>

三、有了配置文件后,获取Flowable的流程引擎对象

    1.可以通过org.flowable.engine.ProcessEngines(6.0)、org.activiti.engine.ProcessEngines(5.0)中的getDefaultProcessEngine()方法来获取默认的流程引擎对象,其原理是通过获取classpath下的activiti.cfg.xml/activiti-context.xml/flowable.cfg.xml/flowable-context.xml配置文件来创建一个对应的ProcessEngineConfiguration配置对象,然后通过配置对象生成(buildProcessEngine())来创建的。

public static void main(String[] args) {
		ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
		System.out.println(engine);
}

    2.可以通过org.flowable.engine.ProcessEngineConfiguration(6.0)、org.activiti.engine.ProcessEngineConfiguration(5.0)中的

无标题

这几个方法来获取得到一个流程引擎的配置对象,然后就可以通过流程引擎配置对象来生成对应的流程引擎了。

createProcessEngineConfigurationFromResourceDefault()这个是读取classpath下的activiti.cfg.xml(5.0)/flowable.cfg.xml(6.0)

其他几个重载的方法可以通过classpath的文件名称或一个输入流来获取,第二个参数代表配置对象的id名称,默认是processEngineConfiguration

createStandaloneProcessEngineConfiguration()是创建一个不基于任何配置文件的空对象(StandaloneProcessEngineConfiguration

是ProcessEngineConfiguration接口的实现子类),然后我们可以通过这个来手动设置对应的参数(比如数据库连接参数),默认情况下没有设置jdbc的情况下,是使用的h2数据库的tcp模式(h2的运行模式有内嵌和tcp模式 jdbc:h2:tcp://localhost/~/activiti),需要引入h2的jar包

createStandaloneInMemProcessEngineConfiguration()是创建一个不基于任何配置文件的空对象(StandaloneInMemProcessEngineConfiguration是StandaloneProcessEngineConfiguration的子类),默认情况下是没有设置jdbc相关参数的情况下,是使用的h2数据库的内嵌模式 jdbc:h2:mem:activiti,需要引入h2的jar包




打赏, 我要小额赞助,鼓励作者写出更好的文章
<< 上一篇:使用RPM包安装后插入中文乱码问题
>> 下一篇:10.简单使用rest api发布 启动 处理

评论列表



您还没有登录,登录后才能发表评论,请【登录】