activiti通過擴充套件點重寫節點行為
在activit專案中,有時需要重寫節點的behaviour,但如果將程式碼反編譯,會為後續升級,及專案打包帶為不方便。
其實 acitivit已經提供了擴充套件點重寫節點行為。
重寫辦法如下:
- activiti在初始化processEngineConfiguration時,設定行為工廠
@Bean(name = "processEngineConfiguration")
public ProcessEngineConfigurationImpl processEngineConfiguration() {
SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration();
processEngineConfiguration.setDataSource(druidDataSource());
processEngineConfiguration.setTransactionManager(annotationDrivenTransactionManager());
processEngineConfiguration.setProcessEngineName(ProcessEngines.NAME_DEFAULT);
//設定全域性事件監聽
processEngineConfiguration.setTypedEventListeners(this.getGlobalActivitiEventListener());
//重寫節點行為
processEngineConfiguration.setActivityBehaviorFactory(new CdpActivityBehaviorFactory());
//設定主鍵生成
processEngineConfiguration.setIdGenerator(new ActivitiIdGenerator());
//設定函式
processEngineConfiguration.setBeans(FunctionFactory.getFunctionBeans());
return processEngineConfiguration;
}
其中關鍵程式碼為
//重寫節點行為
processEngineConfiguration.setActivityBehaviorFactory(new CdpActivityBehaviorFactory());
2.類CdpActivityBehaviorFactory是節點行為工廠,設定了所有節點的行為實現類
@Component
public class CdpActivityBehaviorFactory extends DefaultActivityBehaviorFactory {
public CdpUserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask, TaskDefinition taskDefinition) {
return new CdpUserTaskActivityBehavior(userTask.getId(), taskDefinition);
}
上述程式碼中CdpUserTaskActivityBehavior是這邊重寫的節點行為類
3.類CdpUserTaskActivityBehavior為節點行為,可以繼承原來的UserTaskActivityBehavior,覆蓋需要重寫的方法即可
public class CdpUserTaskActivityBehavior extends UserTaskActivityBehavior{
//重寫需要改的方法
}
最後強烈提醒一下,節點userTask需要重寫的行為有三個,因為有單例項,序列多例項,並行多例項三種,分別為UserTaskActivityBehavior,ParallelMultiInstanceBehavior,SequentialMultiInstanceBehavior。
相關文章
- DM8 DMDSC動態擴充套件節點套件
- SpringBoot擴充套件點EnvironmentPostProcessorSpring Boot套件
- etcd管理,證書配置,擴充套件,遷移恢復,帶證書擴充套件節點套件
- 巧用SpringBoot擴充套件點EnvironmentPostProcessorSpring Boot套件
- 為Unity元件編寫擴充套件Unity元件套件
- Sentinel 原理-如何為系統設定擴充套件點套件
- 通過編寫指令碼和程式來擴充套件SSIS包NZ指令碼套件
- 【SpringBoot】分析 SpringBoot 中的擴充套件點Spring Boot套件
- 聊聊Spring擴充套件點BeanPostProcessor和BeanFactoryPostProcessorSpring套件Bean
- IOS setOnclick - 點選事件完美擴充套件iOS事件套件
- SpringBoot各類擴充套件點詳解Spring Boot套件
- 雜湊表擴充套件—點陣圖套件
- gpexpand擴充gp例項和節點
- [外掛擴充套件]焦點圖外掛套件
- Activiti擴充套件的使用者任務屬性套件
- BeanDefinition註冊流程、spring 擴充套件點一(NamespaceHandler)BeanSpring套件namespace
- 編寫可擴充套件程式套件
- 貝寶如何將Kubernetes擴充套件到超過4k個節點和200k個Pod?套件
- Kubernetes 節點彈性擴充套件實踐元件 Amazon Karpenter:部署 GPU 推理應用套件元件GPU
- 使用 Cython 為 Python 編寫更快的 C 擴充套件Python套件
- 這個Dubbo註冊中心擴充套件,有點意思!套件
- [外掛擴充套件]焦點圖輪播外掛套件
- 譯 - Spring 核心技術之 Spring 容器擴充套件點Spring套件
- spring 掃描BeanDefinition詳解以及TypeFilter擴充套件點SpringBeanFilter套件
- SOFABoot 擴充套件點初體驗 | SOFALab 實踐系列boot套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 編寫"谷歌擴充套件"便捷"自測"埋點上報資訊是否正確谷歌套件
- 擴充套件節能器:Lights Out for Mac套件Mac
- PHP擴充套件開發教程2 – 編寫第一個擴充套件 hello worldPHP套件
- 使用composer安裝擴充套件包的坑點之一套件
- Dubbo原始碼分析(一)Dubbo的擴充套件點機制原始碼套件
- 漫畫:Kotlin 的擴充套件細節探究Kotlin套件
- Ace Editor 擴充套件編寫初步(轉)套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- Python為什麼能擴充套件Python套件
- [外掛擴充套件]通過標題搜尋站外資訊套件
- SPI擴充套件點在業務中的使用及原理分析套件
- Thinkphp實戰利用鉤子使用行為擴充套件 (Hook)PHP套件Hook