第二章、搭建Activiti开发环境
来源:互联网 发布:什么是js面向对象 编辑:程序博客网 时间:2024/05/23 19:59
下载Activiti文件
进入https://www.activiti.org/,下载Activiti的压缩包。我使用的版本是activiti-5.22.0。
文件目录
Activiti5.10之前的版本和之后的版本有很大的区别,这里只给出5.10之后的目录结构
- database:该目录包含了对Activiti引擎表的创建、删除、升级三种类型的脚本。对于不同的数据库都提供了不同的类型的脚本
- docs:该目录包含三种文档:javadocs、userguide、xsd
- libs:相比5.10之前的版本移除了第三方的依赖,仅仅包含Activiti引擎的各个模块的class文件以及源码。
- wars:存在activiti-explorer.war和activiti-rest.war两个war包模块,能够部署到tomcat等Web服务器中
Javadocs
Javadocs中包名按照功能模块划分,一共存在11个package
- org.activiti.engine:里面包含了七大类Service接口、异常类定义和流程引擎以及流程引擎配置,另外还定义了一些运行时异常类
- org.activiti.engine.delegate:该包定义了处理流程的行为、监听事件的规范
- org.activiti.engine.form:该包应用在内置表单的场景下,在一些企业或客户要求自定义表单你的需求中使用。一种是直接在流程定义中设置每个节点的表单内容,可以设置每个字段的类型,是否可以编辑等属性。另一种就是通过外置表单的形式,通过formkey指定外置表单文件的名称,类型可以是.xml或者是.form。表单的读取,提交都可以通过FormService接口完成。
- org.activiti.engine.history:包含了历史记录查询对象及查询结果的历史数据对象接口
- org.activiti.engine.identity:用来管理身份和认证,功能依托IdentityService接口
- org.activiti.engine.management:该包主要用来实现针对流程引擎的管理功能,通过调用接口ManagementService可以监控引擎状态,任务调度,数据库数据读取
- org.activiti.engine.query:该包没有具体的功能,定义了查询的共有特性
- org.activiti.engine.repository:包含了针对流程资源的管理与查询。依托的RepositoryService接口可以部署流程定义、自定义表单、规则等文件,还可以读取流程图片、流程定义文件
- org.activiti.engine.runtime
- org.activiti.engine.task
- org.activiti.engine.test
安装activiti-explorer
在下载好的activiti压缩包中,存在wars这样的文件夹,该文件夹中存在activiti-explorer.war和activiti-rest.war两个文件,需要将activiti-war文件放入到tomcat文件安装路径中webapps这个目录下,启动tomcat,然后再浏览器中输入http://localhost:8080/activiti-explorer/
就可以进入登录页面
activiti的hello world
由于activiti的工程目录就是一个maven的工程目录,所以我就直接新建了一个maven-webapp的项目,项目结构如下
在eclipse中做activiti的工程,我们需要在eclipse中安装activiti的插件,如有安装出错请参考http://blog.csdn.net/yixiaoping/article/details/44515513
安装完的eclipse是可以新建activiti的工程和diagram。
在src/main/resources下新建diagrams/SimpleLeaveProcess.bpmn diagrams是一个文件夹,同时需要在src/main/resources下新建activit.cfg.xml这个是spring bean文件。
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="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/db_activiti" /> <property name="username" value="root" /> <property name="password" value="root" /> <property name="defaultAutoCommit" value="false" /> </bean> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="dataSource" ref="dataSource" /> <property name="databaseSchemaUpdate" value="true" /> </bean></beans>
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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.activiti.examples</groupId> <artifactId>activiti-examples</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>BPMN 2.0 with Activiti - Examples</name> <properties> <activiti-version>5.18.0</activiti-version> </properties> <dependencies> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>${activiti-version}</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>${activiti-version}</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.168</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>1.7.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version></version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <inherited>true</inherited> <configuration> <classpathContainers> <classpathContainer>org.eclipse.jdt.USER_LIBRARY/Activiti Designer Extensions</classpathContainer> </classpathContainers> </configuration> </plugin> </plugins> </build></project>
SimpleLeaveProcess.bpmn截图
其实这个文件也就是一个xml文件
右击activiti,生成测试单元代码
package org.activiti.designer.test;import static org.junit.Assert.*;import java.util.HashMap;import java.util.Map;import java.io.FileInputStream;import org.activiti.engine.RepositoryService;import org.activiti.engine.RuntimeService;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.test.ActivitiRule;import org.junit.Rule;import org.junit.Test;public class ProcessTestMyProcess { private String filename = "F:\\workspace\\activiti_demo\\src\\main\\resources\\diagrams\\SimpleLeaveProcess.bpmn"; @Rule public ActivitiRule activitiRule = new ActivitiRule(); @Test public void startProcess() throws Exception { RepositoryService repositoryService = activitiRule.getRepositoryService(); repositoryService.createDeployment().addInputStream("myProcess.bpmn20.xml", new FileInputStream(filename)).deploy(); RuntimeService runtimeService = activitiRule.getRuntimeService(); Map<String, Object> variableMap = new HashMap<String, Object>(); variableMap.put("name", "Activiti"); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", variableMap); assertNotNull(processInstance.getId()); System.out.println("id " + processInstance.getId() + " " + processInstance.getProcessDefinitionId()); }}
运行结果显示
说明
运行完的程序会在MySQL数据库,对应的db_activiti的数据库中的表中写入24张表,每一张表都是有不同的作用,对应着程序运行时,历史记录,等有关信息。本代码是采用的xml文件的配置方式,也是可以在代码中直接写上数据库的配置信息。类似于官方用户指南中写的
ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration() .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE) .setJdbcUrl("jdbc:h2:mem:my-own-db;DB_CLOSE_DELAY=1000") .setAsyncExecutorEnabled(true) .setAsyncExecutorActivate(false) .buildProcessEngine();
- 第二章、搭建Activiti开发环境
- Activiti 开发环境搭建
- 搭建Activiti开发环境
- activiti eclipse开发环境搭建
- Activiti eclipse开发环境搭建
- Activiti学习笔记二activiti开发环境搭建
- activiti工作流开发环境的搭建
- 【浅谈Activiti之"开发环境搭建"】
- 第二章 搭建JavaFx开发环境
- 工作流引擎Activiti学习第二天(二)环境搭建
- activiti环境搭建
- activiti环境搭建
- Activiti环境搭建详解
- 第二章 环境搭建
- 第二章 环境搭建
- 疯狂Activiti6连载(3)Activiti开发环境搭建
- 第二章 Ubuntu下开发环境的搭建
- 准备Activiti开发环境
- Markdown使用
- 欢迎使用CSDN-markdown编辑器
- joda,joiner,FluentIterable
- using namespace std 小总结
- c#面试题 查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序
- 第二章、搭建Activiti开发环境
- Spring事务详解
- 机器学习总结
- C++的一些基本概念
- js跨域ajax跨域举例图文详述
- spring之注释@Autowired、@Resourse
- Clock In SAI
- mysql中一些常用的命令
- 改变世界的 17 个数学公式,你知道几个?