Activiti工作流(一)环境配置

下载与目录结构

官网:https://www.activiti.org/  

目录结构如下:

database :提供了建表语句。

docs:该目录包含了三种文档:javadocs、userguide、xsd。

  1. javadocs:API文档,包名按照功能模块划分,org.activiti.engine.*。
  2. userguide:用户手册,包含环境配置、10分钟快速入门以及各个功能模块的使用教程。
  3. xsd:包含BPMN2.0规范的XSD文件以及Activiti扩展的自定义标签XSD。

libs:开发用的jar包和源码包。

wars:提供了两个例子程序。

新建activiti工程

将示例中lib下的包放入新建工程的lib下 并构建

由于我们使用的是Mysql数据库,Mysql数据库的链接驱动Activiti官方包中并没有提供,需要我们自己导入。手动导入mysql-connector-java.jar

初始化表结构

方式1、使用activiti框架提供的建表语句

在database目录下找到相应数据库的建表语句,执行即可。

 

方式2

使用activiti框架的自动建表功能。activiti框架提供了和hibernate类似的自动建表功能。

程序方式(不推荐)

在刚刚建立的工程下新建测试类 运行后一方面可以得到流程引擎对象一方面会初始化数据库如果没有表会自动创建25张表

public class TestActiviti {
	
	/*
	 * 通过配置对象创建流程引擎
	 */
	@Test
	public void CreatTable(){
		//创建流程引擎配置对象
		ProcessEngineConfiguration  processEngineConfiguration =ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
		//配置数据库连接对象
		processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
		processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/activity?userUnicode=true&characterEncoding=utf8");
		processEngineConfiguration.setJdbcUsername("root");
		processEngineConfiguration.setJdbcPassword("root");
		//表生成策略(如果没有表则创建表)
		processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
		//工作流核心对象 流程引擎
		ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
		System.out.println(processEngine);
		
	}
}

在Actiiti5中定制流程必定会操作到数据库,如果都像上面那样写一大段代码会非常麻烦,所以我们可以把数据库连接配置写入配置文件。

配置方式

 配置文件可以到示例程序的class目录拷贝 activiti.cfg.xml,修改里面的内容即可。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    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
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <!--配置流程引擎配置对象-->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
        <property name="jdbcDriver"  value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activity?userUnicode=true&amp;characterEncoding=utf8"/>
        <property name="jdbcUsername" value="root" />
        <property name="jdbcPassword" value="root" />
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
</beans>
/*
	 * 通过配置文件创建
	 */
	@Test
	public void CreatTable2(){
		//创建流程引擎配置对象
		ProcessEngineConfiguration  processEngineConfiguration =
				ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
		//工作流核心对象 流程引擎
		ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
		System.out.println(processEngine);
	}

工作流核心API

ProcessEngine

说明:

  1. 在Activiti中最核心的类,其他的类都是由他而来。
  2. 产生方式:     

在前面看到了两种创建ProcessEngine(流程引擎)的方式,而这里要简化很多,调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

@Test
	public void CreatTable3(){
		ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
		System.out.println(processEngine);
	}
  1. 可以产生RepositoryService

  1. 可以产生RuntimeService

  1. 可以产生TaskService

各个Service的作用:

RepositoryService

管理流程定义

RuntimeService

执行管理,包括启动、推进、删除流程实例等操作

TaskService

任务管理

HistoryService

历史管理(执行完的数据的管理)

IdentityService

组织机构管理

FormService

一个可选服务,任务表单管理

ManagerService

 

猜你喜欢

转载自blog.csdn.net/baiyan3212/article/details/86010204