activit5升到flowable後的全域性設定的修改
阿新 • • 發佈:2018-11-07
用activiti做流程引擎時,我們需要定製一些全域性配置,如主鍵的生成規則,全域性事件等。
在activiti5中,是這樣實現的
@Bean(name = "processEngineConfiguration") public ProcessEngineConfigurationImpl processEngineConfiguration() { SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration(); processEngineConfiguration.setDataSource(druidDataSource()); processEngineConfiguration.setTransactionManager(annotationDrivenTransactionManager()); //設定全域性事件監聽 processEngineConfiguration.setTypedEventListeners(this.getGlobalActivitiEventListener()); //重寫節點行為 processEngineConfiguration.setActivityBehaviorFactory(new ActivityBehaviorFactory()); //設定主鍵生成 processEngineConfiguration.setIdGenerator(new ActivitiIdGenerator()); //設定函式 processEngineConfiguration.setBeans(FunctionFactory.getFunctionBeans()); return processEngineConfiguration; }
但是這樣的程式碼,在flowable不起作用。經分析,調整程式碼如下:
@Bean public EngineConfigurationConfigurer<SpringProcessEngineConfiguration> customIdGeneratorConfigurer() { return engineConfiguration -> {engineConfiguration.setIdGenerator( customIdGenerator()); engineConfiguration.setActivityBehaviorFactory(activityBehaviorFactory()); engineConfiguration.setTransactionManager(transactionManager); }; }
經測試,功能OK!
我的部落格即將入駐“雲棲社群”,誠邀技術同仁一同入駐。