返回介绍

18.6. 使用 ProcessEngineConfigurator 进行高级流程引擎配置

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

深入控制流程引擎配置的高级方法是使用ProcessEngineConfigurator。创建一个org.flowable.engine.cfg.ProcessEngineConfigurator接口的实现,并将它注入到流程引擎配置中:

<bean class="...SomeProcessEngineConfigurationClass">

  ...

  <property name="configurators">
    <list>
      <bean class="com.mycompany.MyConfigurator">
        ...
      </bean>
    </list>
  </property>

  ...

</bean>

这个接口需要实现两个方法。configure方法,使用一个ProcessEngineConfiguration实例作为参数。可以使用这个方式添加自定义配置,并且这个方法会保证在流程引擎创建之前,所有默认配置已经完成之后被调用。另一个方法是getPriority方法,可以指定配置器的顺序,以备某些配置器对其他的有依赖。

这种配置器的一个例子是集成LDAP,使用配置器将默认的用户与组管理类替换为可以处理LDAP用户的实现。可见配置器可以相当大程度地改变及调整流程引擎,以适应非常高级的使用场景。另一个例子是使用自定义的缓存替换流程引擎缓存:

public class ProcessDefinitionCacheConfigurator extends AbstractProcessEngineConfigurator {

  public void configure(ProcessEngineConfigurationImpl processEngineConfiguration) {
      MyCache myCache = new MyCache();
      processEngineConfiguration.setProcessDefinitionCache(enterpriseProcessDefinitionCache);
  }

}

也可以使用ServiceLoader的方法,从classpath中自动发现流程引擎配置器。也就是说必须将包含配置器实现的jar放在classpath下,并且jar的META-INF/services目录下需要有名为org.flowable.engine.cfg.ProcessEngineConfigurator的文件,内容是自定义实现的全限定类名。当流程引擎启动时,日志会提示找到这些配置器:

INFO  org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl  - Found 1 auto-discoverable Process Engine Configurators
INFO  org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl  - Found 1 Process Engine Configurators in total:
INFO  org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl  - class org.flowable.MyCustomConfigurator

请注意某些环境下可能不能使用ServiceLoader方法。可以通过ProcessEngineConfiguration的enableConfiguratorServiceLoader参数显式禁用(默认为true)。

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

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

发布评论

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