精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国语对白在线刺激| 国产高潮在线观看| 久久最新网址| 91精品国产综合久久蜜臀| 97超碰人人爱| 性感美女视频一二三| 麻豆免费精品视频| 久久久免费电影| 免费成人深夜天涯网站| 一区二区网站| 欧美性猛片xxxx免费看久爱| 成人av在线播放观看| 毛片在线免费| 国产成人精品免费| 国产福利精品视频| 国产一级av毛片| blacked蜜桃精品一区| 日韩精品一区二区三区中文不卡| 北条麻妃在线视频| 操人在线观看| 亚洲精品美国一| 亚洲v国产v在线观看| 天天操天天干天天舔| 精品一区二区久久久| 亲爱的老师9免费观看全集电视剧| 国产日韩欧美在线观看视频| 国产午夜一区| 亚洲精品电影网站| 男人的天堂免费| 四虎在线精品| 在线国产电影不卡| 看av免费毛片手机播放| 黑人极品ⅴideos精品欧美棵| 国产精品女主播av| 日日夜夜精品网站| 久草在现在线| 91性感美女视频| yellow视频在线观看一区二区| 中文字幕在线网站| 日本中文字幕不卡| 国产a∨精品一区二区三区不卡| 久久激情免费视频| 欧美黄色aaaa| 欧美大片va欧美在线播放| 亚洲精品国产精品乱码在线观看| 国产精品嫩模av在线| 亚洲精品久久视频| 少妇一级淫片免费放播放| 深夜福利一区二区三区| 欧美一区二区三区小说| 亚洲精品视频三区| 亚洲网站免费| 91超碰这里只有精品国产| 五月激情五月婷婷| 国产视频一区二区在线播放| 欧美日韩国产美女| 亚洲一区二区在线视频观看| 日韩欧国产精品一区综合无码| 欧美色老头old∨ideo| 性欧美极品xxxx欧美一区二区| 成人看片网页| 欧美日韩久久久一区| 中文字幕成人免费视频| 国产在线视频欧美一区| 日韩精品中文字幕一区| 日本不卡视频一区| 日韩精品福利一区二区三区| 日韩电影中文字幕| 日韩一级av毛片| 久久在线播放| 欧美高清激情视频| 亚洲一区 视频| 欧美亚洲三级| 成人欧美一区二区三区在线湿哒哒 | 久久久久99人妻一区二区三区| 日本精品视频| 亚洲精品国产精品自产a区红杏吧| 伦理片一区二区| 亚洲福利网站| www.美女亚洲精品| 国产午夜精品一区二区理论影院| 国产精品日韩| 国产精品自拍视频| 亚洲第一免费视频| 久久网站最新地址| 亚洲国产精品女人| 国产亚洲成av人片在线观看 | 水蜜桃色314在线观看| 中文字幕在线高清| 欧美丰满少妇xxxxx高潮对白| 中文字幕在线国产| 国产99亚洲| 欧美成人精品h版在线观看| 亚洲视频免费播放| 麻豆成人91精品二区三区| 成人做爰66片免费看网站| 男操女在线观看| 亚洲男人的天堂网| 日韩欧美xxxx| 66精品视频在线观看| 亚洲一级黄色片| 欧美黑人一级片| 三级欧美在线一区| 国产精品久久亚洲7777| av在线三区| 黄色精品在线看| 亚洲制服中文字幕| 国产99久久| 久久男人资源视频| 国产精品无码AV| 国产欧美综合在线观看第十页| 日韩中文字幕在线不卡| 日日av拍夜夜添久久免费| 日韩欧美不卡一区| 精品在线观看一区| 视频在线在亚洲| 国产综合第一页| 超碰在线网址| 欧美色综合网站| 黄色a一级视频| 国模大胆一区二区三区| 成人激情免费在线| 自拍视频在线播放| 欧美午夜美女看片| 色哟哟无码精品一区二区三区| 97视频热人人精品免费| 国产精品www| 欧美精品少妇| 岛国精品视频在线播放| 日本少妇xxxx软件| 一本一道久久a久久精品蜜桃| 国产精品视频自在线| 久热av在线| 精品免费在线视频| 国产激情第一页| 亚洲激情av| 国产日韩欧美一区二区三区四区 | 久久一区二区三区电影| 国产精品www网站| 青青视频在线观| 激情亚洲一区二区三区四区| 亚洲精品无码一区二区| 精品动漫一区| 精品在线观看一区二区| 女人高潮被爽到呻吟在线观看| 亚洲精品一区二区三区99| 久久一区二区三| 成人免费毛片嘿嘿连载视频| 福利视频一区二区三区四区| 成人三级毛片| 51久久精品夜色国产麻豆| 天堂av网在线| 欧美亚洲国产一区二区三区va| 日韩精品电影一区二区| 日韩福利电影在线观看| 日韩av高清| 日本a人精品| 久久久精品久久| 亚洲AV无码一区二区三区少妇 | www.亚洲成人| 99久久免费国产精精品| 一区二区激情视频| 成人性生活免费看| 日韩中文字幕亚洲一区二区va在线| 日本精品一区二区三区视频 | 国产精品女主播一区二区三区| 久久av一区二区三区漫画| 精品丝袜在线| 国产一区二区激情| 99视频免费看| 亚洲va天堂va国产va久| 欧美狂猛xxxxx乱大交3| 日本中文字幕一区二区视频| 99热都是精品| 五月国产精品| 国产区精品视频| 七七成人影院| 国产一区二区美女视频| 国产视频在线观看视频| 亚洲第一av色| 亚洲精品国产精品国自| 国产99一区视频免费| 97国产精东麻豆人妻电影| 欧美日韩一二三四| 97久久天天综合色天天综合色hd| 天堂电影一区| 久久亚洲精品中文字幕冲田杏梨| 蜜臀久久精品久久久久| 欧美亚洲国产bt| 精品少妇一二三区| 国产肉丝袜一区二区| 久久无码人妻一区二区三区| 国产精品日韩| 9191国产视频| 精品视频亚洲| 国产精品国产三级欧美二区| 欧美123区| 久久人91精品久久久久久不卡| 久久精品国产亚洲a∨麻豆| 欧美一区二区三区在| 国产suv精品一区二区33| 一区二区三区在线观看视频| 中文字幕成人动漫| 成人免费高清视频在线观看| 一道本在线免费视频| 99精品国产在热久久婷婷| 致1999电视剧免费观看策驰影院| 欧洲vs亚洲vs国产| 97超级碰碰| 91麻豆精品| 国产成人拍精品视频午夜网站 | 国产精品久久久久aaaa九色| 91网在线看| 中文字幕精品一区二区精品| 人体私拍套图hdxxxx| 欧美aⅴ一区二区三区视频| 免费看黄在线看| 亚洲先锋影音| 亚洲成人av免费| 日韩中文字幕组| 一区二区亚洲| 精品人妻大屁股白浆无码| 久久久影院免费| 日韩精品极品视频在线观看免费| 国产成人精品福利| 91精品久久久久久蜜桃| 久久久加勒比| 国产精品日韩欧美综合| 黑人巨大精品| 8x拔播拔播x8国产精品| 波多野结衣乳巨码无在线观看| 蜜臀久久99精品久久久久久宅男| 成年人在线观看网站| 亚洲人成网站999久久久综合| 色婷婷激情五月| 亚洲精品一区二区三区99| 亚洲成人精品女人久久久| 欧美精品一级二级| 亚洲视频久久久| 欧美日韩在线电影| 亚洲天堂999| 欧美日本在线播放| 91无套直看片红桃| 91精品国产91久久久久久一区二区 | 91精品综合久久久久久| 亚洲天堂aaa| 制服丝袜一区二区三区| 国产男男gay网站| 日韩欧美一区二区免费| 丰满人妻熟女aⅴ一区| 精品国产三级a在线观看| 国模私拍视频在线| 精品视频中文字幕| 久久手机免费观看| 在线播放日韩专区| 麻豆av在线免费看| 欧美xxxx14xxxxx性爽| 黄色大片在线| 欧美孕妇性xx| 丁香久久综合| 92国产精品久久久久首页| 亚洲精品在线播放| 九色视频成人porny| 精品理论电影在线| 日本成人性视频| 国产精品99一区二区| 国产资源在线视频| 日本特黄久久久高潮| 奇米视频7777| 成人午夜电影久久影院| 日韩aaaaa| 中文在线资源观看网站视频免费不卡| 大吊一区二区三区| 亚洲午夜久久久| 中文字幕在线日本| 在线播放欧美女士性生活| 丰满肉嫩西川结衣av| 亚洲天堂视频在线观看| 九七久久人人| 欧美亚洲国产成人精品| 欧美日韩卡一| 国产一区二区三区黄| 日韩免费av| 免费国产a级片| 久草这里只有精品视频| 97人妻精品一区二区三区免费 | 国产激情精品久久久第一区二区| av在线播放网址| 国产精品免费aⅴ片在线观看| 亚洲欧美一区二区三区四区五区| 欧美性猛交xxxx富婆| 国产色视频在线| 亚洲视频在线免费观看| 在线免费观看的av| 国产精品黄视频| 精品福利一区| 波多野结衣三级在线| 亚洲免费网址| 无码人妻aⅴ一区二区三区玉蒲团| 久久久久综合网| 国产一级av毛片| 欧美精品v国产精品v日韩精品 | 欧洲在线一区| 永久免费网站视频在线观看| 老牛影视一区二区三区| 可以看的av网址| 国产精品久久毛片av大全日韩| 日本少妇毛茸茸高潮| 91.com在线观看| 懂色一区二区三区| 91精品国产91久久久| 久久69av| 最近看过的日韩成人| 久久婷婷av| 粉嫩av懂色av蜜臀av分享| 亚洲六月丁香色婷婷综合久久| 波多野结衣绝顶大高潮| 亚洲精品国产精品国自产在线| 女子免费在线观看视频www| 国产综合色香蕉精品| 欧美午夜精品一区二区三区电影| 自慰无码一区二区三区| 国产成人精品亚洲777人妖 | 国产精品伦子伦| 亚洲欧美成人一区二区三区| 一本一道精品欧美中文字幕| 亚洲图片欧美午夜| 91精品产国品一二三产区| 国产亚洲欧美一区二区三区| 欧美区亚洲区| 亚洲区 欧美区| 亚洲美女免费在线| 国产精品人妻一区二区三区| 日韩在线视频网站| 2019中文亚洲字幕| 综合久久国产| 国产精品自拍网站| 麻豆视频在线观看| 日韩免费观看高清完整版| 日本资源在线| 国产日韩欧美亚洲一区| 亚洲欧洲午夜| 精品视频站长推荐| 精品久久久久久久久久久久| 婷婷五月综合久久中文字幕| 97色在线视频观看| 亚瑟一区二区三区四区| 国产在线青青草| 国产欧美日韩视频在线观看| 成人黄色片在线观看| 中文字幕不卡av| 青草综合视频| 2022中文字幕| 99riav一区二区三区| 国产三级av片| 亚洲性日韩精品一区二区| 国产精品久久久久久妇女| 中文字幕久久综合| 国产电影一区二区三区| 久久精品国产亚洲AV无码麻豆| 亚洲国产天堂久久综合网| 亚洲欧美小说色综合小说一区| 欧美三级华人主播| 久久99热这里只有精品| 69av视频在线| 精品视频在线播放| 久久精品超碰| 国产av熟女一区二区三区| 91色视频在线| 亚洲在线精品视频| 欧美国产日韩xxxxx| 天海翼精品一区二区三区| 亚洲一级片免费| 一区二区三区四区av| 婷婷亚洲一区二区三区| 国产日产欧美a一级在线| 黑人一区二区| 无码人妻精品一区二区中文| 欧美二区三区的天堂| av岛国在线| 一区二区三区av| 成人精品免费网站| 亚洲综合视频在线播放| 久久久伊人欧美| 日韩成人精品一区二区| 国产精品偷伦视频免费观看了| 色哟哟日韩精品| 日本不卡影院| 日本一区二区精品| 成人免费视频网站在线观看| 日本成人一级片| 国内精久久久久久久久久人| 欧美一区二区三区高清视频| www.啪啪.com| 欧美美女视频在线观看| 中国色在线日|韩| 2022中文字幕| 国产精品对白交换视频| 亚洲日本中文字幕在线| 91丨九色丨国产在线|