flowable中全局监听器如何正确注册
时间: 2023-11-21 21:06:21 浏览: 37
在Flowable中注册全局监听器可以通过配置流程引擎来实现。具体步骤如下:
1. 创建全局监听器类,继承`org.flowable.engine.delegate.event.FlowableEventListener`接口,并实现其中的方法。
2. 在流程引擎配置类中添加全局监听器配置,如下所示:
```
@Bean
public FlowableEventSupport flowableEventSupport() {
FlowableEventSupport eventSupport = new FlowableEventSupport();
eventSupport.addEventListener(myGlobalEventListener());
return eventSupport;
}
@Bean
public MyGlobalEventListener myGlobalEventListener() {
return new MyGlobalEventListener();
}
```
其中,`MyGlobalEventListener`为自定义的全局监听器类。
3. 将`flowableEventSupport()`方法添加到流程引擎配置中,如下所示:
```
@Bean
public ProcessEngineConfiguration processEngineConfiguration() {
SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration();
configuration.setDataSource(dataSource);
configuration.setTransactionManager(transactionManager);
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
configuration.setAsyncExecutorActivate(false);
configuration.setEventListeners(Arrays.asList(flowableEventSupport()));
return configuration;
}
```
其中,`setEventListeners()`方法用于设置全局事件监听器。
4. 启动应用程序,并验证全局监听器是否生效。
需要注意的是,在注册全局监听器时,需要将它添加到`FlowableEventSupport`对象中,而不是添加到流程引擎中。这是因为`FlowableEventSupport`是一个事件支持类,用于管理所有的事件监听器。