精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Flowable 服務任務執行的三種方式

開發 項目管理
ServiceTask 一般由系統自動完成,當流程走到這一步的時候,不會自動停下來,而是會去執行我們提前在 ServiceTask 中配置好的方法。

前面和小伙伴們分別聊了 Flowable 中的 ReceiveTask 和 UserTask,今天我們來看看另外一個比較常見的 Task --> ServiceTask。

1. ServiceTask

ServiceTask 從名字上看就是服務任務,它的圖標一般是像下面這樣:

圖片

ServiceTask 一般由系統自動完成,當流程走到這一步的時候,不會自動停下來,而是會去執行我們提前在 ServiceTask 中配置好的方法。

2. 實踐

我們通過一個簡單的例子來看一下 ServiceTask 要怎么玩。

假設我有如下一個簡單的流程圖:

圖片

中間這個就是一個 ServiceTask。

當流程執行到 ServiceTask 的時候,具體要做哪些事情?有三種不同的方式來設置這里的任務,我們分別來看。

2.1 監聽類

首先我們可以設置一個監聽類,這個監聽類有一個硬性規定就是需要實現 JavaDelegate 接口,像下面這樣:

public class MyServiceTask implements JavaDelegate {
@Override
public void execute(DelegateExecution execution){
System.out.println("========MyServiceTask==========");
}
}

在這個監聽類中我們可以完成一些操作,通過這個 execution 也可以獲取到在流程節點之間傳輸的變量。

這個類定義好之后,接下來我們在流程定義的時候,配置這個類的全路徑即可,如下圖:

圖片

這個配置對應的 XML 內容如下:

<process id="demo01" name="測試流程" isExecutable="true">
<documentation>測試流程</documentation>
<startEvent id="startEvent1" flowable:formFieldValidatinotallow="true"></startEvent>
<sequenceFlow id="sid-33A78082-C2FD-48BE-8B87-99FB20F0B331" sourceRef="startEvent1" targetRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8"></sequenceFlow>
<serviceTask id="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" flowable:class="org.javaboy.flowableidm.MyServiceTask"></serviceTask>
<endEvent id="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></endEvent>
<sequenceFlow id="sid-0698809E-0A6C-4B92-A167-AE96A8CB75F2" sourceRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" targetRef="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></sequenceFlow>
</process>

小伙伴們看到,在 ServiceTask 標簽中的 flowable:class="org.javaboy.flowableidm.MyServiceTask" 就表示 ServiceTask 執行的服務類。

配置完成后,我們可以部署并啟動這個流程,由于這個流程除了開始和結束,就這一個節點,所以流程一啟動就自動結束了。不過在這個過程中,我們可以看到控制臺打印出來了日志,說明這個 ServiceTask 確實是執行了。

2.2 委托表達式

我們也可以配置委托表達式。

委托表達式是指將一個實現了 JavaDelegate 接口的類注冊到 Spring 容器中,然后我們在流程節點的配置中不用寫完整的類名了,只需要寫 Spring 容器中的 Bean 名稱即可。

像下面這樣:

@Component
public class MyServiceTask implements JavaDelegate {
@Override
public void execute(DelegateExecution execution){
System.out.println("========MyServiceTask==========");
}
}

這個類注冊到 Spring 容器中的默認名稱是類名首字母小寫,即 myServiceTask。

現在我們在流程圖中,可以按照如下方式進行配置:

圖片

對應的 XML 文件如下:

<process id="demo01" name="測試流程" isExecutable="true">
<documentation>測試流程</documentation>
<startEvent id="startEvent1" flowable:formFieldValidatinotallow="true"></startEvent>
<sequenceFlow id="sid-33A78082-C2FD-48BE-8B87-99FB20F0B331" sourceRef="startEvent1" targetRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8"></sequenceFlow>
<serviceTask id="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" flowable:delegateExpressinotallow="${myServiceTask}"></serviceTask>
<endEvent id="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></endEvent>
<sequenceFlow id="sid-0698809E-0A6C-4B92-A167-AE96A8CB75F2" sourceRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" targetRef="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></sequenceFlow>
</process>

可以看到,flowable:delegateExpressinotallow="${myServiceTask}" 就表示執行的一個表達式。

測試過程同 2.1 小節,我就不再贅述了。

最后總結一下,委托表達式,一定是 JavaDelegate 接口的實現類,將這個實現類注冊到 Spring 容器中,然后在使用的時候,根據 Bean 的名稱從 Spring 容器中查找即可。

2.3 表達式

我們也可以使用表達式。

表達式就是一個普通類的普通方法,將這個普通類注冊到 Spring 容器中,然后表達式中還可以執行這個類中的方法,類似下面這樣,任意定義一個 Java 類:

@Component
public class MyServiceTask2 {
public void hello(){
System.out.println("========MyServiceTask2==========");
}
}

然后在流程圖中按照如下方式進行配置:

圖片

表達式中有一部分內容隱藏了,完整的表達式是 ${myServiceTask2.hello()}。

對應的 XML 文件如下:

<process id="demo01" name="測試流程" isExecutable="true">
<documentation>測試流程</documentation>
<startEvent id="startEvent1" flowable:formFieldValidatinotallow="true"></startEvent>
<sequenceFlow id="sid-33A78082-C2FD-48BE-8B87-99FB20F0B331" sourceRef="startEvent1" targetRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8"></sequenceFlow>
<serviceTask id="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" flowable:expressinotallow="${myServiceTask2.hello()}"></serviceTask>
<endEvent id="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></endEvent>
<sequenceFlow id="sid-0698809E-0A6C-4B92-A167-AE96A8CB75F2" sourceRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" targetRef="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></sequenceFlow>
</process>

可以看到,表達式的內容是 flowable:expressinotallow="${myServiceTask2.hello()}。

測試方式同 2.1 小節,這里我不再贅述。

3. 類中字段

可能有小伙伴注意到,我們在繪制流程圖的時候,還可以為類設置一個字段。

例如我想給 ServiceTask 的執行類設置一個 username 字段,如下:

圖片

圖片

設置完成后,對應的 XML 如下:

<process id="demo01" name="測試流程" isExecutable="true">
<documentation>測試流程</documentation>
<startEvent id="startEvent1" flowable:formFieldValidatinotallow="true"></startEvent>
<sequenceFlow id="sid-33A78082-C2FD-48BE-8B87-99FB20F0B331" sourceRef="startEvent1" targetRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8"></sequenceFlow>
<serviceTask id="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" flowable:delegateExpressinotallow="${myServiceTask}">
<extensionElements>
<flowable:field name="username">
<flowable:string><![CDATA[javaboy]]></flowable:string>
</flowable:field>
</extensionElements>
</serviceTask>
<endEvent id="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></endEvent>
<sequenceFlow id="sid-0698809E-0A6C-4B92-A167-AE96A8CB75F2" sourceRef="sid-6FA66E2A-F8E6-4F10-8FA2-6450408E17D8" targetRef="sid-A5F11956-15EA-4574-98D0-29A4E3DB5495"></sequenceFlow>
</process>

可以看到,這里通過 extensionElements 節點描述了額外的信息。

接下來,我們就可以在 Java 類中訪問到這個變量了,如下:

@Component
public class MyServiceTask implements JavaDelegate {
Expression username;
@Override
public void execute(DelegateExecution execution){
System.out.println("username.getExpressionText() = " + username.getExpressionText());
System.out.println("username.getValue(execution) = " + username.getValue(execution));
System.out.println("========MyServiceTask==========");
}
}

想要獲取到 username 對應的值,上面這段代碼中,松哥給大家演示了兩種方式。

不過需要注意,這種設置類中字段的方式,適用于 2.1 和 2.2 小節的情況,不適用于 2.3 小節的情況。

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2025-01-08 09:55:37

Spring接口數據庫

2022-10-09 18:16:01

Flowable設置ReceiveTas

2012-07-17 09:16:16

SpringSSH

2009-11-06 10:54:19

WCF服務方式

2020-11-01 17:10:46

異步事件開發前端

2019-11-20 18:52:24

物聯網智能照明智能恒溫器

2021-11-05 21:33:28

Redis數據高并發

2021-06-24 08:52:19

單點登錄代碼前端

2014-12-31 17:42:47

LBSAndroid地圖

2022-10-25 15:25:22

網關并行Flowable

2024-09-20 05:49:04

SpringBoot后端

2010-03-12 17:52:35

Python輸入方式

2024-07-08 09:03:31

2015-01-05 09:56:20

可穿戴設備

2023-10-18 11:12:01

增強現實VR

2013-06-17 17:08:47

Windows PhoWP開發共享數據方式

2011-06-03 11:53:06

Spring接口

2009-07-20 15:08:41

Spring實例化Be

2022-08-19 11:19:49

單元測試Python

2009-07-29 09:36:07

無線通信接入方式
點贊
收藏

51CTO技術棧公眾號

欧美性受xxxx| 91亚洲国产成人精品一区| 天堂v在线观看| 久久精品国产大片免费观看| 国产精品自产自拍| 国产亚洲激情在线| 日本人体一区二区| 国产女人18毛片18精品| 国产探花一区| 亚洲福利视频三区| 91色视频在线导航| 亚洲欧美卡通动漫| 国产精品xxx| 久久久精品免费观看| 欧美一级黑人aaaaaaa做受| 农村末发育av片一区二区| 麻豆最新免费在线视频| 成人一区二区| 色94色欧美sute亚洲13| 九色91在线视频| 久久久久久久黄色| 亚洲精品一二三**| 一区二区三区欧美视频| 91精品在线观看视频| 国产精选第一页| 中文字幕日韩在线| 欧美午夜影院一区| 男人添女人下部高潮视频在观看| av中文字幕免费| 欧美精品综合| 日韩免费高清av| av在线com| 人人妻人人玩人人澡人人爽| 红桃视频国产一区| 亚洲的天堂在线中文字幕| 777久久精品一区二区三区无码| 国产精品久久久久久久免费| 亚洲91视频| 91精品国产福利在线观看| 欧洲美女和动交zoz0z| 99在线观看免费| 日韩福利视频网| 久久精品国产亚洲精品| 手机看片国产精品| 国产天堂在线播放视频| av电影一区二区| 国产精品高潮呻吟视频| 男人天堂资源网| 国产成人久久精品一区二区三区| 亚洲精品中文在线| 精品国产一区二区三区免费| 免费黄色网址在线| 欧美jizz| 中文字幕av日韩| 日本特黄在线观看| 色是在线视频| 欧美极品美女视频| 91视频国产一区| 亚洲熟妇av乱码在线观看| 中文精品久久| 亚洲第一网站免费视频| 中文字幕18页| 户外露出一区二区三区| 亚洲男人的天堂av| 亚洲一区二区三区精品视频| 亚洲av无码乱码在线观看性色 | 欧美日韩一区二区欧美激情| 中文精品一区二区三区| 高清国产mv在线观看| 噜噜噜躁狠狠躁狠狠精品视频 | 久久久久久国产精品免费无遮挡| 国产精品1024| 奇米4444一区二区三区| 国产精品www爽爽爽| 中文字幕日韩在线| 欧美草草影院在线视频| 天堂av在线网站| 在线观看免费视频你懂的| 久久久综合网站| 99电影网电视剧在线观看| 亚洲第一网站在线观看| 欧美精品97| 久久久久五月天| 亚洲欧美另类日本| 女主播福利一区| 一区二区三区四区视频| 久久久久久久穴| 国产精品巨作av| 欧美日韩国产高清一区二区三区| 131美女爱做视频| 热三久草你在线| 欧美艳星brazzers| 樱花草www在线| 日韩欧美一区二区三区免费观看| 欧美中文一区二区三区| 黄色片网址在线观看| 免费日韩电影| 精品久久久久久久久久久| 欧美另类videos| 免费在线毛片网站| 亚洲成在人线在线播放| 国产成人无码一二三区视频| 国产理论电影在线| 一本大道久久a久久精品综合| 久久www视频| 国产精品一二三产区| 亚洲高清免费一级二级三级| 日本女优爱爱视频| 蜜桃av在线播放| 欧美日韩视频一区二区| 秘密基地免费观看完整版中文 | 亚洲欧洲视频| 欧美成人精品在线| 一级性生活免费视频| 欧美手机视频| 欧美精品videossex88| wwwav国产| 在线电影一区二区| 欧美最猛性xxxxx(亚洲精品)| 亚洲一线在线观看| 91老司机福利 在线| 精品国产一区二区三区免费| 在线视频1区2区| 中文字幕精品—区二区四季| 天天人人精品| a视频网址在线观看| 国产欧美中文在线| 久无码久无码av无码| 麻豆av在线免费观看| 一区二区三区小说| 精品999在线| 成人a在线观看高清电影| 亚洲精品在线三区| 9.1成人看片| 国产91精品对白在线播放| 亚洲人成电影网站色| 中文天堂资源在线| 亚洲一区日本| 国产成人一区二区| 在线视频1卡二卡三卡| 99精品久久99久久久久| 日本a级片久久久| avtt在线播放| 色哟哟在线观看一区二区三区| 稀缺呦国内精品呦| 国内精品久久久久久久97牛牛| 成人欧美一区二区三区在线湿哒哒| 国产免费无遮挡| 国产精品免费久久| 2018中文字幕第一页| 99视频有精品高清视频| 精品三级在线看| 精品欧美一区二区久久久久| 国产精品亚洲综合色区韩国| 国产精品久久久久久影视| 伊人网免费视频| 成人综合婷婷国产精品久久蜜臀 | 性猛交xxxx乱大交孕妇印度| 成人免费毛片高清视频| 日本老太婆做爰视频| 精品视频在线播放一区二区三区 | 国产精品一香蕉国产线看观看| 国产精品亚洲lv粉色| 国产精品国产三级国产aⅴ入口| 蜜桃视频成人在线观看| 在线免费成人| 欧美成人在线免费| 亚洲精品久久久蜜桃动漫 | 在线观看精品国产视频| 欧美日韩 一区二区三区| 国产做a爰片久久毛片| 国模精品娜娜一二三区| 91看片在线观看| 欧美最新大片在线看| av资源在线免费观看| 国产一区二区三区视频在线播放| 玖玖玖精品中文字幕| 久久77777| 日韩欧美成人激情| 日韩久久精品视频| 精品一区二区三区av| 你懂的视频在线一区二区| 日韩欧美看国产| 日韩一区二区三区xxxx| 国产乱国产乱老熟| 国产日韩欧美精品综合| 国产午夜福利在线播放| gogo大尺度成人免费视频| 久久成人在线视频| 中文亚洲av片在线观看| 亚洲欧洲国产日本综合| 免费看污黄网站| 一区二区蜜桃| 久久久久久久免费| 欧美videos粗暴| 国产香蕉一区二区三区在线视频 | av手机在线观看| 日韩一区二区三区电影| 永久免费观看片现看| 国产高清不卡一区二区| www.日日操| 你懂的国产精品永久在线| 欧美日韩高清在线一区| sm捆绑调教国产免费网站在线观看 | 国产色视频在线| 欧美性xxxxhd| 日韩片在线观看| 加勒比av一区二区| 99爱视频在线| 久久久伦理片| 久久免费成人精品视频| av电影在线播放高清免费观看| 精品sm捆绑视频| 91高潮大合集爽到抽搐| 欧美性猛交99久久久久99按摩| 少妇视频一区二区| 91麻豆国产福利精品| 日本wwww色| 麻豆视频一区二区| 伊人狠狠色丁香综合尤物| 久久激情av| 91视频婷婷| www555久久| www.精品av.com| 国产女主播在线写真| 色av成人天堂桃色av| 青青草国产在线观看| 久久精品72免费观看| 男人用嘴添女人下身免费视频| 91成人免费| 亚洲精品一区二区三区av| 国精品产品一区| 欧美亚洲一级片| 国产白丝在线观看| 久久的精品视频| 午夜视频成人| 精品少妇一区二区三区在线播放| 亚洲字幕av一区二区三区四区| 一本大道久久a久久精二百| 97免费在线观看视频| 久久九九影视网| 国产精品无码在线| 日本大胆欧美人术艺术动态| 综合操久久久| 三级电影一区| 国产精品三区www17con| 日韩欧美另类一区二区| 亲子乱一区二区三区电影| 小草在线视频免费播放| 少妇高潮久久久久久潘金莲| 乱子伦一区二区三区| 欧美午夜性色大片在线观看| 久久久久久久久久影院| 中文字幕亚洲在| 欧美午夜精品免费| 国产一级久久久| 亚洲成人av一区| 日本熟妇毛茸茸丰满| 午夜伦欧美伦电影理论片| caopor在线| 不卡欧美aaaaa| 激情婷婷综合网| 欧美永久精品| 中文字幕精品在线播放| 午夜精品偷拍| 免费看毛片的网址| 欧美综合二区| 制服丝袜综合网| 亚洲欧美日韩国产| 日本三区在线观看| 另类的小说在线视频另类成人小视频在线| 亚洲77777| 国产精品中文字幕日韩精品| 色婷婷精品久久二区二区密| 韩国欧美一区二区| 老熟女高潮一区二区三区| 99国产精品久久久久| 2019男人天堂| 一区二区三区美女视频| 蜜桃av.com| 亚洲制服丝袜一区| 69亚洲精品久久久蜜桃小说| 欧美精品乱人伦久久久久久| 国产精品久久久久久久久久精爆| 樱桃视频在线观看一区| 麻豆一区产品精品蜜桃的特点| 亚瑟在线精品视频| 天天干,天天干| 欧美一区二区三区播放老司机| 奴色虐av一区二区三区| 五月天激情小说综合| 日韩三级视频在线| 亚洲18女电影在线观看| 色老头在线视频| 91精品国产美女浴室洗澡无遮挡| 伊人精品在线视频| 精品精品国产高清a毛片牛牛| 天天爽夜夜爽夜夜爽| 日韩亚洲国产中文字幕| 肉肉视频在线观看| 精品久久香蕉国产线看观看gif| 黄色片视频免费| 9191精品国产综合久久久久久| 日韩少妇裸体做爰视频| 在线观看免费亚洲| 国产精品一区二区免费视频| 亚洲理论在线a中文字幕| 国产激情视频在线播放| 日韩电影中文字幕在线| 天天干视频在线| 自拍偷拍免费精品| av色在线观看| 亚洲最大福利视频网| 在线亚洲a色| 日本精品久久久久久久久久| 免费视频一区二区| 日本a视频在线观看| 久久99精品久久久久久| a视频免费观看| 亚洲国产美女搞黄色| 亚洲一级特黄毛片| 亚洲国产精品视频在线观看| 狠狠躁夜夜躁av无码中文幕| 国产亚洲精品一区二555| 黄色18在线观看| 91免费国产网站| 成人嘿咻视频免费看| 欧美精品一区免费| 粉嫩在线一区二区三区视频| 人妻体体内射精一区二区| 久久九九久精品国产免费直播| 国产亚洲第一页| 日韩欧美在线123| 日本福利在线| 亲子乱一区二区三区电影| 欧美高清视频看片在线观看| 精品一区二区三区国产| 91精品国产福利在线观看麻豆| 性生交免费视频| 97精品久久久午夜一区二区三区 | youjizz亚洲| 欧亚精品在线观看| 大陆精大陆国产国语精品| 亚洲一区二区三区乱码| 美女视频第一区二区三区免费观看网站| 无码人妻精品一区二区三应用大全| 一区二区三区欧美视频| 丰满人妻一区二区三区四区53 | 亚洲国产精品久久艾草纯爱| 在线观看免费观看在线| 亚洲天堂av在线免费| 无码小电影在线观看网站免费| 黄色91av| 亚洲尤物精选| 免费看91的网站| 1000部国产精品成人观看| 最近中文字幕在线免费观看| 色偷偷88888欧美精品久久久 | 韩剧1988在线观看免费完整版| 在线看片福利| 日本一区高清不卡| 久久精品动漫| 男女做爰猛烈刺激| 亚洲激情图片小说视频| 99久久精品日本一区二区免费| 色婷婷久久av| 国产亚洲亚洲国产一二区| 亚洲精品一品区二品区三品区| 国产自产2019最新不卡| 久久中文免费视频| 亚洲国产欧美在线成人app| 免费高潮视频95在线观看网站| 精品国产乱码一区二区三区四区| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品午夜视频| 日韩在线观看| 国产女人18毛片水真多18| 午夜精品视频在线观看| 999在线视频| 92看片淫黄大片欧美看国产片| 欧美xxx在线观看| 久久精品女同亚洲女同13| 亚洲国产精品一区二区久久恐怖片| 久久这里精品| 成人午夜小视频| 性色一区二区| 永久免费观看片现看| 精品处破学生在线二十三| 国产在线美女| 欧美一区二区福利| 国产精品一区三区| 欧美国产成人精品一区二区三区| 久久精品国产欧美激情| 精品中国亚洲| 女同激情久久av久久| 精品成人在线视频| 毛片在线能看| 懂色一区二区三区av片| 美女爽到呻吟久久久久| 欧美精品videos极品|