1. 程式人生 > >activit5升到flowable後的全域性設定的修改

activit5升到flowable後的全域性設定的修改

用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!
我的部落格即將入駐“雲棲社群”,誠邀技術同仁一同入駐。