`
longgangbai
  • 浏览: 7253260 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解

 
阅读更多
SpringActiviti的整合:

SpringActiviti的整合中ProcessEngineFactoryBean成为了两者的整合点。ProcessEngineFactoryBeanorg.activiti.spring.ProcessEngineFactoryBean。提供了ProcessEngine的配置和创建的功能。
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">

    ...

</bean>

  

<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">

  <property name="processEngineConfiguration" ref="processEngineConfiguration" />

</bean>

如果在包含事物的activiti配置如下:
<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">

 <!-- 采用spring的数据源类创建一个数据源 -->

  <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">

    <property name="driverClass" value="org.h2.Driver" />

    <property name="url" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />

    <property name="username" value="sa" />

    <property name="password" value="" />

  </bean>

 <!-- 创建一个事物管理器 -->

  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

    <property name="dataSource" ref="dataSource" />

  </bean>

  <!-- 创建一个流程引擎的配置对象 -->

  <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">

    <property name="dataSource" ref="dataSource" />

    <property name="transactionManager" ref="transactionManager" />

    <!-- 设置数据库schema的更新方式 -->

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

    <!-- 是否启动jobExecutor -->

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

  </bean>

   <!-- 创建一个流程引擎bean -->

  <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">

    <property name="processEngineConfiguration" ref="processEngineConfiguration" />

  </bean>

  <!-- 创建activiti提供的各种服务 -->

  <!-- 工作流仓储服务 -->

  <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />

  <!-- 工作流运行服务 -->

  <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />

  <!--  工作流任务服务-->

  <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />

  <!--  工作流历史数据服务-->

  <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />

  <!--  工作流管理服务-->

  <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />

  <!-- 工作流唯一服务 -->

  <bean id="IdentityService" factory-bean="processEngine" factory-method="getIdentityService" />

 

...

工作流中Expressions的使用
  
在使用springSpringProcessEngineConfiguration时,如果没有beans属性表示所有bean都可以暴露给activiti的流程文件xml访问。如果配置beans但是没有配置mapbean信息,则没有暴露的bean。如果map中配置部分bean表示只是暴露部分beanactiviti使用。
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">

  ...

  <property name="beans">

    <map>

      <entry key="printer" value-ref="printer" />

    </map>

  </property>

</bean>

  

  <bean id="printer" class="org.activiti.examples.spring.Printer" />

暴露的bean可以在activiti的流程xml中使用。如下调用bean的方法
<bean id="printer" class="org.activiti.examples.spring.Printer" />
<definitions id="definitions" ...>

  

  <process id="helloProcess">

  

    <startEvent id="start" />

    <sequenceFlow id="flow1" sourceRef="start" targetRef="print" />

    

    <serviceTask id="print" activiti:expression="#{printer.printMessage()}" />

    <sequenceFlow id="flow2" sourceRef="print" targetRef="end" />

    

    <endEvent id="end" />

    

  </process>

 

</definitions>
public class Printer {

 

  public void printMessage() {

    System.out.println("hello world");

  }

}

自动资源部署(Automatic resource deploy
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">

  ...

  <property name="deploymentResources" value="classpath*:/org/activiti/spring/test/autodeployment/autodeploy.*.bpmn20.xml" />

</bean>

  

<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">

  <property name="processEngineConfiguration" ref="processEngineConfiguration" />

</bean>

Springactivit的整合测试
@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:org/activiti/spring/test/junit4/springTypicalUsageTest-context.xml")

public class MyBusinessProcessTest {

  

  @Autowired

  private RuntimeService runtimeService;

  

  @Autowired

  private TaskService taskService;

  

  @Autowired

  @Rule

  public ActivitiRule activitiSpringRule;

  

  @Test

  @Deployment

  public void simpleProcessTest() {

    runtimeService.startProcessInstanceByKey("simpleProcess");

    Task task = taskService.createTaskQuery().singleResult();

    assertEquals("My Task", task.getName());

  

    taskService.complete(task.getId());

    assertEquals(0, runtimeService.createProcessInstanceQuery().count());

   

  }

}      

当在spring的配置中配置ActivitiRule时候,测试bean将自动被注入:

<bean id="activitiRule" class="org.activiti.engine.test.ActivitiRule">

  <property name="processEngine" ref="processEngine" />

</bean>  

分享到:
评论
1 楼 李凌风 2014-03-18  

相关推荐

    工作流Activiti的学习总结Activiti5.6和Spring3.03整合

    工作流Activiti的学习总结Activiti5.6和Spring3.03整合

    工作流activiti集合spring

    工作流activiti集合spring

    最新工作流引擎Activiti7基础与进阶

    本课程从Activiti的基础架构、表结构、基础API开始介绍,逐渐讲解到Activiti的高级功能如:流程变量、网关,再到最后使用Activiti和Spring框架、SpringBoot整合,实现一个应用DEMO。 课程内容 章节一:Activiti...

    Activiti6.0工作流引擎springboot项目代码

    (Activiti6.0集成springboot工作流引擎模板代码)Activiti6.0工作流引擎介绍与总结,工作流简介、流程体验、 Activiti与spring集成

    Activiti7工作流引擎资料和源码.zip

    Activity讲义(PDF格式和MD格式,如流程定义、流程实例、流程变量、流程分叉与并行、流程配置、流程图的绘制、BPMN、个人任务与租任务、流程部署、流程操作、Activity的服务、接口、类的关联关系、数据库表、...

    SpringBoot集成Activiti完整工作流管理系统源码及SQL

    SpringBoot集成Activiti完整工作流管理系统源码及SQL 包含如下主要内容: 1、工作流完整案例(请假流程、请假会签流程Demo) 2、系统用户权限、工作流用户和用户组管理 3、支持在线流程模型定义、部署、导出。也可用...

    spring 整合 activiti工作流 相关jar包

    spring 跟activiti整合所用到的相关jar包

    activiti 5.22.0与spring mvc的整合手册

    亲手实战编写的activiti 5.22与spring mvc的整合手册,主要介绍如何在项目中集成explorer等工作流画图组件

    Spring结合Activiti工作流

    Spring 整合Activiti工作流,完成基本的工作流程,源码程序,本人亲测,数据库文件也包含在其中,适合初学工作流

    activiti+spring+srping Mvc+mybatis+maven整合

    activiti5.14+spring4.0+srping Mvc4.0+mybatis3.0.5+maven环境搭建,可以跑起来,并且可以逆向生成相关的数据库表

    springmvc+Mybatis+activiti5

    此项目为springmvc、Mybatis、EHcache、maven、Spring security3、activiti5工作流的整合 是一个基于数据库的权限管理demo项目、使用mysql数据库 项目运行前需要构建maven私服 而且有些jar包私服中肯定没有,需要...

    Vue结合JFinal调用activiti工作流

    作为没用过工作流的一员,之前看过vue引入activiti工作流的案例,但是组件中存在很多问题,这个是我修改过并且成功调用,大家可以供参考,富含Java代码(Jfinal),后续出spring版本的, 前台版本vue4.0版本, ...

    Spring boot整合activiti工作流引擎

    1、使用若依框架作为权限管理系统,集成activiti框架完成工作流引擎开发,打造集流程设计、流程部署、流程执行、任务办理、流程监控于一体的强大工作流平台。 11、对于表单的处理,一律使用外置表单,将业务表单数据...

    activiti 工作流实例-实现请假流程

    这个是Activiti开发的请假流程实例,可以作为用Activiti开发工作流的参考;项目采用spring+hibernate+strus2+activity开发,可以运行;数据库采用oracle,其中 QingJia 和 QingJiaHis 是自己的业务表,分别表示 请假...

    Activiti的工作流应用开发PDF

    activiti工作流应用javaEE WEB项目整合开发文档Activiti的工作流应用开发PDF

    spring mybatis 整合activiti 初学例子

    spring mybatis 整合activiti 初学例子,虽然没有jar包但有jar包的截图,找到一样或高版本的jar包可以运行,activiti最基本的例子,发起流程、待办任务、签收任务、处理任务(审批同意或不同意)、调整申请等功能;...

    2018年Java Activiti6.x 视频整合Spring Boot/JPA/WEB框架实战

    2018年Java Activiti6.x 视频整合Spring Boot/JPA/WEB框架实战 01 Activiti介绍与搭建开发环境 02 运行官方例子 03 编写第一个Activiti程序 04 流程引擎配置与服务组件 05 Activiti数据库介绍 06 API(1)...

    spring-activiti-webapp:Spring整合Activiti的简单例子

    Activiti5.10整合Spring完成请假流程 Spring+Activiti+Spring Data JPA 流程为:上传流程定义文件+填写请假条(启动工作流)+部门经理审批+人事审批+销假+邮件通知+结束 其中在部门经理和人事审批的时候可以驳回(重新...

    Spring Boot wIth Activiti

    Spring Boot整合Activiti引擎,实现工作流相关基本操作

    activiti+springMVC+mybatis rest风格整合demo

    使用rest风格整合了 activiti 5.20 spring 4.15 mybatis 3.3.0 是初学者入门的好素材

Global site tag (gtag.js) - Google Analytics