3.10 activiti核心API详解——流程表达式Expressions

Activiti使用UEL进行表达式解析。
为了在所有环境上支持UEL标准的所有最新特性,我们使用JUEL的修改版本
 

 

1. JUEL介绍

官方网址: http://juel.sourceforge.net/guide/basic/index.html

3.10 activiti核心API详解——流程表达式Expressions_第1张图片

其他资料:Juel基本使用 - 简书

2.表达式在activiti中应用

Java服务任务 Java Service tasks

执行监听器 Execution Listeners

任务监听器 Task Listeners

条件流Conditional sequence flows


 

3.表达式用法

3.1 值表达式 Value expression

解析为一个值。默认情况下,在流程中设置的变量值,都可以通过此处的表达式展示,调用。
 

${myVar}
${myBean.myProperty}

 3.2 方法表达式 Method expression

注入一个方法,可以带或不带参数。方法表达式调用的方法用括号

${printer.print()}
${myBean.addNewOrder('orderName')}
${myBean.doSomething(myVar, execution)}

方法参数:(1)字面值,传什么值就是什么值 (2)表达式:表达式支持原始类型(primitive)、bean、list、array(数组)与map

总结

 无论是值表达式 还是 方法表达式,流程中设置的变量都可以引用。另外activiti中默认的对象也可以引用:

  1. execution : 持有进行中执行(execution)额外信息的 DelegateExecution 。
  2. task : 持有当前任务(task)额外信息的 DelegateTask 。请注意:只在任务监听器的表达式中可用。
  3. authenticatedUserId : 当前已验证的用户id。如果没有已验证的用户,该变量不可用。
     

4. 将spring bean注入到activiti中,通过表达式使用

4.1 xml集成方式

xml生命bean,然后通过activiti的 注入管理。

spring xml文件中:


    ...
    
        
            
        
    






流程定义xml文件


    
        
        
        
        
        
    




bean对应的java类

public class Printer {
    public void printMessage() {
        System.out.println("hello world");
    }
}

4.2 注解集成

在Activiti中使用spring的Bean_多学习多思考-CSDN博客

activiti监听器中注入spring bean_bool的博客-CSDN博客

 

你可能感兴趣的:(Activiti深入研究,activiti,表达式)