ESB控件的使用
esb控件記錄
1.src/main/resouses 文件夾中放需要解析的文件
2.src/main/java中寫java代碼,一般不寫,只有當mule不能實現功能的時候才會寫代碼
flow : 相當于是一個過程,順序執行
payload : 相當于是一個指向棧頂的指針,執行的過程,每經過一個組件 ,把組件壓入棧中,payload指向的對象都是棧頂元素,都是在動態變化,前提是connector是有輸出的如果沒輸出,我們認為這個connector沒有壓入棧中好了,棧的大小為1 ,其中logger 和 variable的connector 沒有數據輸出,payload經過這兩個connector,值不會發生變化
post方式獲取請求發送的方式 #[payload.變量名]
get方式獲取請求發送的方式#[message.inboundProperties.'http.query.params'.變量名]
variable:獲取get ,post中傳過來的參數,放入變量中(變量名在variable控件中設置,其中獲取傳過來的變量值,見上一條的獲取方式,3),使用變量中的值,使用#[flowVars.變量名]
注,關于#[]的使用,可以理解成[]中的都是java代碼,可以執行語句;其中變量名會被自動解析,非變量則被當成字符串,可以進行拼接,與jsp標簽<%=%>很相像
ByteArraytoString 把接受到的流轉換為字符串(一般用于接受json和xml類型的參數,這種參數都是用流的方式接受到的) 這個控件的參數不需要設置
set payload 給payload設值,比如要傳入一個json對象,則把payload設置成json對象,當payload指向http控件時候,會自動把值傳給http控件
object to json : 把字符串轉成json格式 (當轉的數據中存在date類型的字段時,經常需要進行序列化操作,目前還不知道該怎么操作,可以使用transform message控件代替)
transform message : 數據轉換,把一種數據格式轉換成另一種數據格式,把待轉換的數據的字段與轉換后的字段對應起來即可。當被轉換的數據格式是從數據庫中查出來的記錄時(此時payload是一個list<map<String , Object>>),會自動顯示待被轉換的字段,即map中的key值,除了該格式的數據外,其他格式的數據字段(如json)不會自動顯示出來,需要setMeta,轉換后的數據的字段一定要setMeta,一般都是json數據,我們現在java/main/resource中創建一個json模板,把該模板設置為轉換后的數據格式(具體怎么把模板設置為數據格式,暫時不做記錄)
數據轉換的兩種方式:
1) transform message 如果要把 list的數據轉成任意的數據,則在transform在input中會自動識別出列名,然后自己需要自定義轉換后的數據格式,在output中設置,然后把input和output中的列名對應起來;如果是要把非list的數轉成其他格式,則input 和output中的數據都需要自己定義格式
2) object to json 把數據轉成json格式,使用方式見7
批量添加(insert bulk): 先把database加入到flow中,選中database的Bulk Modle 選項,然后再把transform拖到database前進行數據轉換
postman傳的中文是亂碼, 在Content-Type中追加: ;charSet=utf-8
Groovy :用于寫腳本語言(有兩個,用的是藍色的那個,紅色的那個的作用還不知道)
Catch Exception Strategy:用于處理異常。 當正常的flow執行下去遇到異常的時候,跳轉到下面的Error Handling中執行。這個時候的payload還是可以像之前那么使用。
轉載于:https://www.cnblogs.com/jinxiuze/p/7940394.html
總結
- 上一篇: 谁说菜鸟不会数据分析--读书笔记
- 下一篇: js 当前日期增加自然月