`
小古墓
  • 浏览: 59595 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

Activiti 5.12用户指南之配置信息

阅读更多

 

一、创建一个ProcessEngine
     Activiti的流程引擎是通过activiti.cfg.xml这个文件进行配置的。这种方式区别于你用spring的方式去创建一个流程引擎。那么,关于用spring的方式去创建流程引擎,我们后面再讲。
     获得一个ProcessEngine最简单的方式,是用org.activiti.engine.ProcessEngine这个类。
 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        
       它会自己在classpath中寻找activiti.cfg.xml这个文件,并且根据文件中的配置去构造一个引擎。下面的代码片段显示了一个配置的例子。也给你展示了一个详细的配置属性。
       
<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:activiti;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="jobExecutorActivate" value="false" />
    
    <property name="mailServerHost" value="mail.my-corp.com" /> 
    <property name="mailServerPort" value="5025" />    
  </bean>

</beans>
 
          实际上,这个XML的配置信息,是一个Spring的配置信息。但是这不意味着Activiti只能应用在Spring的环境中。通过spring的依赖注入,我们能够很简单的生成一个引擎。 
          ProcessEngineConfiguration这个对象,也能用配置文件去编程创建。也能用一个不同的bean的Id去创建。
          
ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(String resource);
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(String resource, String beanName);
ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(InputStream inputStream);
ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(InputStream inputStream, String beanName);
 
          不用配置文件,默认的也能获得一个ProcessEngineConfiguration这个对象。
          
ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
 

          所有的这些ProcessEngineConfiguration.getXXX()方法都返回一个ProcessEngineConfiguration对象。在调用buildProcessEngine()操作之后,一个ProcessEngine对象被创建。
          
ProcessEngine processEngine = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
  .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE)
  .setJdbcUrl("jdbc:h2:mem:my-own-db;DB_CLOSE_DELAY=1000")
  .setJobExecutorActivate(true)
  .buildProcessEngine();
 
二、ProcessEngineConfiguration实体 
      activiti.cfg.xml这个文件必须包含一个id是processEngineConfiguration的实体。
      
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
 
      这个bean实体会被用于构造ProcessEngine对象。有不止一个类能够定义这processEngineConfiguration。这些类代表着不同的使用环境和一些默认的设置。选择一个尽可能匹配你的环境的类,通过减少属性的数量去配置一个引擎是最好的一种练习。下面的这些类是能直接获取得到的。
  • org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration:这个流程引擎被用于标准的方式。Activiti会留意到事物。
  • org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration:这是一个为单元测试来说很方便的一个类。Activiti会留意到事物。默认使用一个H2 类型的内存的数据库。当引擎被初始化或者关闭的时候,这个数据库也会被创建或者消除。当用这个类的时候,通常来说不用额外的配置。
  • org.activiti.spring.SpringProcessEngineConfiguration:用于在spring环境中的创建流程引擎。
  • org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration:当引擎运行在单机模式和Jta事物下会被用到。
三、数据库配置          
     Activiti引擎会识别两种方式去配置数据库。第一种是定义数据库用到的JDBC 属性:
  • jdbcUrl:数据库的JDBC连接地址。
  • jdbcDriver:数据库依赖的驱动。
  • jdbcUserName:连接数据库的用户名。
  • jdbcPassword:连接数据库的密码。
     根据提供的JDBC属性会构造一个数据源,这个数据源会有一个默认的MyBatis连接池。下面的属性能选择性的设置连接池。
  • jdbcMaxActiveConnections:连接池在任何时候能包含的最大活动数量,默认值是10。
  • jdbcMaxIdleConnections:连接池中能够存在的最大空闲连接数。
  • jdbcMaxCheckoutTime:
  • jdbcMaxWaitTime:这是一个级别很低的设置。它能让连接池打印日志,并且能够在比平时连接时间长的时候,再试图获取一个连接。
     数据库配置的例子:
     
<property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
<property name="jdbcDriver" value="org.h2.Driver" />
<property name="jdbcUsername" value="sa" />
<property name="jdbcPassword" value="" />
 
     另外,javax.sql.DataSource的实现类也能用于创建数据库.
 
<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/activiti" />
  <property name="username" value="activiti" />
  <property name="password" value="activiti" />
  <property name="defaultAutoCommit" value="false" />
</bean>      

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
  
    <property name="dataSource" ref="dataSource" />
    ...
 
     注意:Activiti没有这样一个类库会去创建一个这样的数据源,因此,你必须在你的类路径下有这样的一个类库。
        
四、支持的数据库
     列表里面展示的都是activiti支持的数据库
Activiti database type Versions tested Example JDBC URL Notes
h2 1.3.168 jdbc:h2:tcp://localhost/activiti Default configured database
mysql 5.1.21 jdbc:mysql://localhost:3306/activiti?autoReconnect=true Tested using mysql-connector-java database driver
oracle 11.2.0.1.0 jdbc:oracle:thin:@localhost:1521:xe  
postgres 8.1 jdbc:postgresql://localhost:5432/activiti  
db2 DB2 10.1 using db2jcc4 jdbc:db2://localhost:50000/activiti  
mssql 2008 using sqljdbc4 jdbc:sqlserver://localhost:1433/activiti
 
五、创建数据库的表
     最简单的创建你数据库的表的方法就是:
  • 在你的类路径下添加一个activiti-engine的诸多jar包。
  • 添加一个合适的数据库驱动。
  • 在你的类路径下添加一个activiti.cfg.xml配置文件,指向你的数据库。
  • 执行DbSchemaCreate的main方法。
然而,经常只有数据库管理员能执行DDL操作。在activiti的下载页面或者Activiti的部署包database的子文件夹里面,也会有SQL语句。这个脚本也会在引擎的jar(activiti-engine-x.jar)中,在org/activiti/db/create的包中。SQL文件会是下面的这种形式:
 
activiti.{db}.{create|drop}.{type}.sql
 
     db是任何一种activiti支持的数据库,type是
  • engine:引擎执行必备的表。
  • identity:这些表包含着用户、组和用户组的成员。当引擎需要默认的身份管理时,会选择性的用到这些表。
  • history:这一部分表包含着历史和审计信息。
六、数据库表名字的解释
     Activiti中数据库表的名字都是以ACT_开头。第二部分是两个字母用来区分不同的表。这样用也是匹配API。
  • ACT_RE_*:'RE'代表repository。有这样前缀的表包含'static'的信息,比如流程定义和流程资源(图片、规则)..。
  • ACT_RU_*:'RU'代表runtime.这些表是运行中的表,包含了流程实例中实时的数据,用户任务,变量,工作等。当流程实例执行的时候,Activiti之存储实时的数据,当一个流程实例结束的时候,会删除掉记录。这样保证了这些表小且快。
  • ACT_ID_*:'ID'代表identity。这些表包含了身份信息,比如用户、组等。
  • ACT_HI_*:'HI'代表history。这些包含了历史数据,比如过去的流程实例、变量、任务等。
  • ACT_GE_*:general 数据。这些数据用在各种各样的案例中。
七、数据库升级
     在数据库升级之前,一定要确保已经备份完成。
     通常来说,每当一个流程引擎创建,都会检查一下版本。特别是在你的应用或者Activiti应用包启动的时候经常会出现升级。如果Activiti提示你,你的库版本和数据库表的版本有区别,这时候,其实是抛了异常。
     要升级数据库,你不得不在你的activiti.cfg.xml文件中把下面的属性配置在文件的开头部分。
     
<beans ... >

  <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    <!-- ... -->
    <property name="databaseSchemaUpdate" value="true" />    
    <!-- ... -->
  </bean>

</beans>
 
     因此,在你的classpath中你要选择一个合适的数据库驱动为你的数据库。在你的应用程序中升级数据库,或者启动一个新的Activiti的版本,并且要指向一个包含老版本的数据库。databaseSchemaUpdate设置为true,是指当提示类库和DB不同步时,Activiti首先会自动升级DB到你的新版本中。 
     不过你也可以通过运行升级DDL作为替代。你可以在activiti下载页面,找到数据库升级脚本,运行这个升级脚本。
 
八、计划执行器
    JobExecutor是一个管理一系列线程的组件,它会执行异步消息和定时器。对于单元测试的情况来说,它和多个线程在一起很不方便。因此,API允许通过API去查询并且执行计划,以致于计划的执行能被一个单元测试去控制。为了避免被计划执行器(JobExecutor)干扰,也能关闭它。
     默认的, 当流程引擎启动的时候,JobExecutor会被激活。详细说明如下, 
<property name="jobExecutorActivate" value="false" />
     设置为false,就是指当流程引擎启动的时候,你不想JobExecutor激活。
 
九、邮件服务配置
     配置一个邮件服务不是必须的,这个根据你自己的需要设置。Activiti支持在业务流程中发送邮件。要想实际的发送一封邮件,必须配置一个正确的SMPT邮件服务。
     下面列出的属性能够在activiti.cfg.xml文件中配置:
     
Property Required? Description
mailServerHost no The hostname of your mail server (e.g. mail.mycorp.com). Default is localhost
mailServerPort yes, if not on the default port The port for SMTP traffic on the mail server. The default is 25
mailServerDefaultFrom no The default e-mail address of the sender of e-mails, when none is provided by the user. By default this isactiviti@activiti.org
mailServerUsername if applicable for your server Some mail servers require credentials for sending e-mail. By default not set.
mailServerPassword if applicable for your server Some mail servers require credentials for sending e-mail. By default not set.
mailServerUseSSL if applicable for your server Some mail servers require ssl communication. By default set to false.
     这个要结合任务进行说明,后续再详细进行讲解。
 
十、历史配置
     历史存储的配置是按照特定需求自选配置的。这需要你微调一下配置去影响对引擎的历史数据处理能力。
     
<property name="history" value="audit" />
 
十一、在表达式和脚本中暴露配置的实体类
    默认的,你在activiti.cfg.xml中配置信息指定的所有实体类,或者在你Spring自己的配置文件中所有实体类,都能用在表达式和脚本中。如果你想在你的配置文件中限制实体类的可见性,你可以在你的流程引擎中去配置一个名为bean的属性。在ProcessEngineConfiguration中,这些实体类的属性都是一个map。当你指定这个属性的时候,只有被指定的类才会对表达式或者脚本可见。这些类会以你在map中指定的名字暴漏出来。
 
十二、部署缓存配置
     所有的流程定义都是高速缓存存储器(在他们被解析之后),为了去避免和数据库冲突。因为流程定义的数据不会变化,所以每次一个流程定义的时候,都会需要到数据库。默认的,在缓存中流程定义的数量没有限制。下面的例子是告诉我们如果去限制缓存中流程定义的数量。
<property name="processDefinitionCacheLimit" value="10" />
 
十三、日志
     Activiti 5.12中,SLF4J被作为日志框架,代替了之前的java.util.logging。所有的日志(activiti/spring/mybatis...)都会经过SLF4J过滤,并且允许在你的选择的logging-implementation中进行选择。
     默认的,在activiti-engine的依赖中现在没有SFL4J-binding的jar包。为了应用这个日志框架,你需要手动添加到你的项目中
 
分享到:
评论

相关推荐

    eclipse-activiti5.12插件

    - **配置**:安装完成后,需要在Eclipse的"Preferences"中配置Activiti的相关设置,例如指向Activiti的jar库和数据库连接信息。 ### 4. 使用流程 1. **创建新项目**:在Eclipse中新建一个Activiti工程,包含流程...

    activiti6.0 用户指南中文版

    activiti6.0 用户指南中文版activiti6.0 用户指南中文版activiti6.0 用户指南中文版

    Activiti5.4 用户指南-中文版

    本指南聚焦于 Activiti 5.4 版本,该版本在之前的版本基础上进行了优化和增强,以提供更好的性能和用户体验。 在Activiti 5.4中,用户可以体验到以下关键知识点: 1. **流程定义**:Activiti 使用 BPMN 2.0...

    Activiti5.4 用户指南(中文版)

    本用户指南针对 Activiti 5.4 版本,旨在帮助开发者和新手深入理解其核心功能和用法。 在Activiti 5.4中,首先介绍的是它的安装与配置。这一部分会涵盖如何下载 Activiti 的发行版,如何在 Java 开发环境中集成,...

    activiti系列jar包(含 5.12 、5.14、 5.15)

    在开始使用 Activiti 之前,阅读这份文档至关重要,因为里面可能包含了关于如何配置环境变量、添加依赖到项目、启动服务等关键信息。 在实际应用中,Activiti 可以与 Spring 框架、Hibernate ORM 等技术结合,构建...

    activiti API 用户指南

    《Activiti API 用户指南》是针对企业流程自动化框架Activiti的重要参考资料,主要涵盖了Activiti的API使用、功能特性和实践案例。本指南旨在帮助开发者更好地理解和应用Activiti,提升工作效率,实现高效的企业流程...

    Activiti6 中文 用户指南 操作手册 开发API

    Activiti6是一款强大的工作流引擎,...以上内容是Activiti6用户指南的概述,涵盖了从安装、配置到实际开发和部署的所有关键步骤。对于Java开发人员来说,掌握这些知识将有助于有效利用Activiti6构建高效的工作流系统。

    Activiti 5.4用户指南(中文)

    通过本用户指南,读者将学习到如何配置和使用 Activiti 5.4,创建和执行业务流程,以及如何利用 Activiti 实现企业的业务自动化。同时,了解 Activiti 的最佳实践和注意事项,能够有效地规避潜在的问题,提升流程...

    activiti7开发指南

    2. **安装与配置**:详细讲解如何在Java环境中安装Activiti7,包括依赖库的引入、数据库的配置以及环境的搭建。 3. **模型设计**:阐述BPMN 2.0规范,如何使用Activiti7提供的建模工具或代码方式创建流程模型,如...

    activiti用户指南.zip

    总结,Activiti 6.x 用户指南是开发者和流程管理人员的重要参考资料,涵盖了从安装配置到实际应用的全方位指导,对于理解和使用 Activiti 进行业务流程自动化具有极大价值。通过深入学习和实践,可以充分利用 ...

    Activiti 5.4 用户指南

    Activiti 5.4 用户指南

    Activiti6用户指南

    ### Activiti6 用户指南知识点详解 #### 一、概述与许可 - **许可协议**:Activiti6基于Apache V2许可证发布,这意味着它遵循开放源代码许可证条款,允许用户自由使用、修改和分发该软件及其衍生作品。 - **下载...

    Activiti 5.13 用户指南(中文版)

    以上提到的内容概述了Activiti 5.13用户指南的主要知识点和操作指南,涵盖了从环境配置、基础入门、API和服务使用、Spring集成、BPMN模型构建、表单处理、历史数据查询、工具使用到REST API集成的全方位知识体系。...

    Activiti 5.8 用户指南

    ### Activiti 5.8 用户指南关键知识点解析 #### 一、概述 **Activiti** 是一个开源的工作流引擎,用于构建业务流程自动化应用。它提供了简单易用的方式来定义业务流程,并通过流程引擎来执行这些定义。从 **...

    Activiti6.0 用户手册说明文档1

    在Activiti6.0用户手册中,我们主要关注以下几个核心概念和知识点: 1. **流程定义 (Process Definitions)**:流程定义是流程模型的蓝图,包含了流程的静态信息,如各个步骤、任务、决策点等。它们是通过BPMN 2.0...

    Activiti用户指南.pdf2017-12-21最新中文翻译版

    ### Activiti用户指南知识点总结 #### 1. Activiti简介 Activiti是一个轻量级、可扩展的流程引擎,它允许您创建企业级流程和工作流应用。Activiti遵循Apache V2许可证发布,源代码托管在GitHub上,允许用户查看、...

    Activiti6 中文 用户指南.docx

    以上只是Activiti6用户指南中的部分要点,完整的指南涵盖了更广泛的配置选项、高级特性、事件处理、监听器和BPMN元素的详细使用。通过深入学习和实践,你可以利用Activiti6构建高效、灵活的业务流程管理系统。

    中文版Activiti5.8用户指南

    Activiti是一个开源的工作流和业务流程管理系统(BPMN),它基于...以上就是根据提供的文件内容总结的Activiti5.8用户指南相关知识点,这些知识点覆盖了Activiti的基本概念、配置方法、API使用以及BPMN的设计与应用。

    Activiti 5.4 用户指南(中文版)

    这份"Activiti 5.4 用户指南(中文版)"是针对中国开发者和使用者的详细指导资料,旨在帮助他们更好地理解和应用 Activiti。 1. **BPMN 2.0**:Business Process Model and Notation 2.0 是一种图形化的表示方法,...

Global site tag (gtag.js) - Google Analytics