当前位置:   article > 正文

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

流程表达式

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

 

1. JUEL介绍

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

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

2.表达式在activiti中应用

Java服务任务 Java Service tasks

执行监听器 Execution Listeners

任务监听器 Task Listeners

条件流Conditional sequence flows


 

3.表达式用法

3.1 值表达式 Value expression

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

  1. ${myVar}
  2. ${myBean.myProperty}

 3.2 方法表达式 Method expression

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

  1. ${printer.print()}
  2. ${myBean.addNewOrder('orderName')}
  3. ${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的 注入管理。

  1. spring xml文件中:
  2. <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
  3. ...
  4. <property name="beans">
  5. <map>
  6. <entry key="printer" valueref="printer" />
  7. </map>
  8. </property>
  9. </bean>
  10. <bean id="printer" class="org.activiti.examples.spring.Printer" />
  11. 流程定义xml文件
  12. <definitions id="definitions">
  13. <process id="helloProcess">
  14. <startEvent id="start" />
  15. <sequenceFlow id="flow1" sourceRef="start" targetRef="print" />
  16. <serviceTask id="print" activiti:expression="#{printer.printMessage()}" />
  17. <sequenceFlow id="flow2" sourceRef="print" targetRef="end" />
  18. <endEvent id="end" />
  19. </process>
  20. </definitions>
  21. bean对应的java类
  22. public class Printer {
  23. public void printMessage() {
  24. System.out.println("hello world");
  25. }
  26. }

4.2 注解集成

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

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/468505
推荐阅读
相关标签
  

闽ICP备14008679号