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動態擴充套件節點套件
- WCF擴充套件:行為擴充套件Behavior Extension套件
- etcd管理,證書配置,擴充套件,遷移恢復,帶證書擴充套件節點套件
- 為Unity元件編寫擴充套件Unity元件套件
- Sentinel 原理-如何為系統設定擴充套件點套件
- SpringBoot擴充套件點EnvironmentPostProcessorSpring Boot套件
- IOS setOnclick - 點選事件完美擴充套件iOS事件套件
- 巧用SpringBoot擴充套件點EnvironmentPostProcessorSpring Boot套件
- 雜湊表擴充套件—點陣圖套件
- 通過編寫指令碼和程式來擴充套件SSIS包NZ指令碼套件
- Atitit.一個cms有多少少擴充套件點,多少api wordpress cms有多少api。。擴充套件點...套件API
- 轉:zTree高階入門:如何通過擴充套件節點的屬性來達到是否顯示節點的刪除編輯等圖示(按鈕)...套件
- [外掛擴充套件]焦點圖外掛套件
- 聊聊Spring擴充套件點BeanPostProcessor和BeanFactoryPostProcessorSpring套件Bean
- 將單點登入擴充套件到雲套件
- 擴充套件WCF自定義行為(二)套件
- 編寫"谷歌擴充套件"便捷"自測"埋點上報資訊是否正確谷歌套件
- MySQL Cluster:如何通過擴充套件為MySQL帶來2億QPSMySql套件
- Activiti擴充套件的使用者任務屬性套件
- SpringBoot各類擴充套件點詳解Spring Boot套件
- Rafy 框架 - 外掛級別的擴充套件點框架套件
- 非推倒重來式的讀/寫伸縮擴充套件套件
- 通過exp突然增長看錶的擴充套件套件
- 編寫可擴充套件程式套件
- 使用C++為node.js寫擴充套件模組C++Node.js套件
- BeanDefinition註冊流程、spring 擴充套件點一(NamespaceHandler)BeanSpring套件namespace
- [外掛擴充套件]焦點圖輪播外掛套件
- 這個Dubbo註冊中心擴充套件,有點意思!套件
- 利用Delphi編寫IE擴充套件套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- spring 掃描BeanDefinition詳解以及TypeFilter擴充套件點SpringBeanFilter套件
- SOFABoot 擴充套件點初體驗 | SOFALab 實踐系列boot套件
- Dubbo原始碼分析(一)Dubbo的擴充套件點機制原始碼套件
- SPI擴充套件點在業務中的使用及原理分析套件
- 點選擴充套件或縮小文字框效果程式碼套件
- PHP擴充套件開發教程2 – 編寫第一個擴充套件 hello worldPHP套件
- [外掛擴充套件]通過標題搜尋站外資訊套件
- Windows Phone 7 TextBox全選擴充套件行為Windows套件