activiti学习笔记1---20170323

一、activiti下载

下载地址http://activiti.org/download.html


二、maven工程simple project需要的jar依赖关系

org.activiti:activiti-engine:jar:5.17.0
+- org.activiti:activiti-bpmn-converter:jar:5.17.0:compile
|  \- org.activiti:activiti-bpmn-model:jar:5.17.0:compile
|     +- com.fasterxml.jackson.core:jackson-core:jar:2.2.3:compile
|     \- com.fasterxml.jackson.core:jackson-databind:jar:2.2.3:compile
|        \- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.3:compile
+- org.activiti:activiti-process-validation:jar:5.17.0:compile
+- org.activiti:activiti-image-generator:jar:5.17.0:compile
+- org.apache.commons:commons-email:jar:1.2:compile
|  +- javax.mail:mail:jar:1.4.1:compile
|  \- javax.activation:activation:jar:1.1:compile
+- org.apache.commons:commons-lang3:jar:3.3.2:compile
+- org.mybatis:mybatis:jar:3.2.5:compile
+- org.springframework:spring-beans:jar:4.0.6.RELEASE:compile
|  \- org.springframework:spring-core:jar:4.0.6.RELEASE:compile
+- joda-time:joda-time:jar:2.6:compile
+- org.slf4j:slf4j-api:jar:1.7.6:compile
+- org.slf4j:jcl-over-slf4j:jar:1.7.6:compile

三、添加连接数据库需要的jar依赖【使用oracle11g数据库, 数据库连接使用druid】


四、pom.xml文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zqy.activiti</groupId>
  <artifactId>HelloWorld</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <properties>
  	<junit.version>4.12</junit.version>
  	<activiti.version>5.20.0</activiti.version>
  	<commons-email.version>1.2</commons-email.version>
  	<commons-lang3.version>3.3.2</commons-lang3.version>
  	<mybatis.version>3.2.5</mybatis.version>
  	<springframework.version>4.0.6.RELEASE</springframework.version>
  	<joda-time.version>2.6</joda-time.version>
  	<slf4j.version>1.7.6</slf4j.version>
  	<ojdbc6.version>11.2.0.3</ojdbc6.version>
  	<druid.version>1.0.29</druid.version>
  </properties>
  <dependencies>
  	<dependency>
  		<groupId>junit</groupId>
  		<artifactId>junit</artifactId>
  		<version>${junit.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.activiti</groupId>
  		<artifactId>activiti-engine</artifactId>
  		<version>${activiti.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.activiti</groupId>
  		<artifactId>activiti-process-validation</artifactId>
  		<version>${activiti.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.activiti</groupId>
  		<artifactId>activiti-image-generator</artifactId>
  		<version>${activiti.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.apache.commons</groupId>
  		<artifactId>commons-email</artifactId>
  		<version>${commons-email.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.apache.commons</groupId>
  		<artifactId>commons-lang3</artifactId>
  		<version>${commons-lang3.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.mybatis</groupId>
  		<artifactId>mybatis</artifactId>
  		<version>${mybatis.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-beans</artifactId>
  		<version>${springframework.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>joda-time</groupId>
  		<artifactId>joda-time</artifactId>
  		<version>${joda-time.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.slf4j</groupId>
  		<artifactId>slf4j-api</artifactId>
  		<version>${slf4j.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.slf4j</groupId>
  		<artifactId>jcl-over-slf4j</artifactId>
  		<version>${slf4j.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>com.oracle</groupId>
  		<artifactId>ojdbc6</artifactId>
  		<version>${ojdbc6.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>com.alibaba</groupId>
  		<artifactId>druid</artifactId>
  		<version>${druid.version}</version>
  	</dependency>
  </dependencies>
</project>

五、junit test方法创建流程引擎【自动创建activiti需要的数据表】

5.1创建方式一(java代码设置数据连接)

@Test
public void testCreateTable(){
	ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
						.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE)
//						.setDatabaseSchema("ACT")
						.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl")
						.setJdbcDriver("oracle.jdbc.driver.OracleDriver")
						.setJdbcUsername("act_test")
						.setJdbcPassword("act_test")
						.setAsyncExecutorEnabled(true)
						.setAsyncExecutorActivate(false)
						.buildProcessEngine();
		System.out.println(processEngine);
}


5.2创建方式二,使用默认路径classpath下的activiti.cfg.xml创建流程引擎[spring管理]

activiti.cfg.xml配置如下:

<?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="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

    <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
    <property name="jdbcDriver" value="oracle.jdbc.driver.OracleDriver" />
    <property name="jdbcUsername" value="act_test" />
    <property name="jdbcPassword" value="act_test" />

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

    <property name="jobExecutorActivate" value="false" />
    <property name="asyncExecutorEnabled" value="true" />
    <property name="asyncExecutorActivate" value="false" />

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

</beans>
流程引擎创建如下:
@Test
public void testCreateTableByXml(){
	ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault()
					.buildProcessEngine();
	System.out.println(processEngine);
}

5.3创建方式三,指定activiti配置文件创建流程引擎【使用druid配置, 使用spring管理】

activiti的配置文件activitiBean.cfg.xml

<?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="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
		<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
		<property name="username" value="act_test" />
		<property name="password" value="act_test" />
		
		<!-- 配置初始化大小、最小、最大 -->  
	    <property name="initialSize" value="1" />  
	    <property name="minIdle" value="1" />   
	    <property name="maxActive" value="20" />  
	   
	    <!-- 配置获取连接等待超时的时间 -->  
	    <property name="maxWait" value="60000" />  
	   
	    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
	    <property name="timeBetweenEvictionRunsMillis" value="60000" />  
	   
	    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
	    <property name="minEvictableIdleTimeMillis" value="300000" />  
	    
	    <property name="validationQuery" value="SELECT 'x'" />  
	    <property name="testWhileIdle" value="true" />  
	    <property name="testOnBorrow" value="false" />  
	    <property name="testOnReturn" value="false" />  
	   
	    <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->  
	    <property name="poolPreparedStatements" value="true" />  
	    <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />  
	   
	    <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->  
	    <property name="filters" value="stat" />
	</bean>
	<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
		<property name="dataSource" ref="dataSource"></property>
		<property name="databaseSchemaUpdate" value="true" />
		<property name="jobExecutorActivate" value="false" />
		<property name="asyncExecutorEnabled" value="true" />
		<property name="asyncExecutorActivate" value="false" />
		<property name="mailServerHost" value="mail.my-corp.com" />
		<property name="mailServerPort" value="5025" />
	</bean>

</beans>
创建流程引擎代码如下:

@Test
public void testCreateTableByBeanXml(){
	ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activitiBean.cfg.xml")
			.buildProcessEngine();
	System.out.println(processEngine);
}

注意:

使用oracle11g,创建流程引擎生成activiti数据表时, 初次创建可能会抛出异常, 配置DatabaseSchema为ACT后,可正常创建;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值