- 1. 简介
- 2. 开始
- 3. 配置
- 4. Flowable API
- 5. 集成 Spring
- 6. 部署
- 7. BPMN 2.0 介绍
- 8. BPMN 2.0 结构
- 9. 表单
- 10. JPA
- 11. 历史
- 12. 身份管理
- 13. Eclipse Designer
- 14. Flowable UI 应用
- 15. REST API
- 16. 集成 CDI
- 17. 集成 LDAP
- 18. 高级
- 19. 工具
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
18.6. 使用 ProcessEngineConfigurator 进行高级流程引擎配置
深入控制流程引擎配置的高级方法是使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论