返回介绍

5.3. 表达式

发布于 2023-09-17 23:40:35 字数 1462 浏览 0 评论 0 收藏 0

当使用ProcessEngineFactoryBean时,默认BPMN流程中所有的表达式都可以“看见”所有的Spring bean。可以通过配置的map,限制表达式能使用的bean,甚至可以完全禁止表达式使用bean。下面的例子只暴露了一个bean(printer),可以使用“printer”作为key访问。要完全禁止表达式使用bean,可以将SpringProcessEngineConfiguration的‘beans’参数设为空list。如果不设置‘beans’参数,则上下文中的所有bean都将可以使用。

<bean class="org.flowable.spring.SpringProcessEngineConfiguration">
  ...
  <property name="beans">
  <map>
    <entry key="printer" value-ref="printer" />
  </map>
  </property>
</bean>

<bean class="org.flowable.examples.spring.Printer" />

这样就可以在表达式中使用这个bean了。例如,SpringTransactionIntegrationTest hello.bpmn20.xml展示了如何通过UEL方法表达式(method expression)调用Spring bean:

<definitions>

  <process>

  <startEvent />
  <sequenceFlow sourceRef="start" targetRef="print" />

  <serviceTask flowable:expression="#{printer.printMessage()}" />
  <sequenceFlow sourceRef="print" targetRef="end" />

  <endEvent />

  </process>

</definitions>

其中Printer为:

public class Printer {

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

Spring bean配置(上面已经展示过)为:

<beans>
  ...

  <bean class="org.flowable.examples.spring.Printer" />

</beans>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文