




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Ofbiz中的中的groovyGroovy是什么?是什么?l一種動態(tài)語言l構建于JVM之上l支持面向?qū)ο缶幊蘬可以作為腳本語言Groovy的特性的特性l無縫集成JAVAl動態(tài)類型轉(zhuǎn)換l支持DSL(Domain Specific Languages )l函數(shù)式編程l默認導入常用的包 如lang包、util包等l各種語法糖l元編程使用使用groovy的好處的好處l無縫集成所有的java庫,一個Java類可以隨意的調(diào)用groovy類,groovy中也可以任意的調(diào)用java類l語法特性支持,使程序更加簡潔,可讀性更強,代碼量也更少使用使用groovy的弊端的弊端l相對于Java,代碼執(zhí)行速度更慢lID
2、E支持不如java舉個例子:快排舉個例子:快排ldef quicksort(List list) if(list.size()2)return list def pivot=listlist.size().intdiv(2) def left=list.grepitpivot return quicksort(left)+mid+quicksort(right)Ofbiz中使用的中使用的groovy的好處的好處l更方便二次開發(fā)l無需一行java代碼l代碼修改后無需編譯,可直接運行l(wèi)更少的代碼Ofbiz框架本身集成框架本身集成groovy的方的方式式l在ofbiz框架本身中,采用的方式是把gro
3、ovy作為一種腳本語言,參見 org.ofbiz.service.engine.GroovyBaseScript及org.ofbiz.webapp.event.GroovyEventHandler怎樣在怎樣在ofbiz中使用中使用groovy?在在widget中聲明使用中聲明使用在在controller.xml中聲明使用中聲明使用在在controller.xml中使用注意中使用注意l需在controller.xml文件中配置groovy的事件控制器l在在service.xml中使用中使用在在widget、controller和在和在service中使用中使用groovy的差異的差異l在widg
4、et和Controller中使用groovy基本一致,ofbiz的framework綁定了以下對象到groovy腳本,這些對象可以直接使用 request response session dispatcher delegator security locale timeZone userLogin parametes context (該對象在使用方法的時候不可用)l在service中,可以直接使用的對象有dispatcher、delegator、security、locale timeZone、userLogin、 parametesl在controllerwidgetservice中都可
5、以直接調(diào)用的一些簡單方法 Map runService(String serviceName, Map inputMap) GenericValue findOne(String entityName, Map inputMap) List findList(String entityName, Map inputMap) GenericValue makeValue(String entityName) logInfo(String message) logWarning(String message) logError(String message) success(String mess
6、age) failure(String message) error(String message) 舉例子舉例子我要查詢一個userLoginId為zhny的userLogin首先我可以創(chuàng)建一個UserLoginFinder.groovy的文件在里面我可以直接這樣寫context.user= findOne(“UserLogin”,userLoginId:”zhny”)當然,如果要調(diào)用前臺傳過來的參數(shù),可以這樣 context.user= findOne(“UserLogin”,userLoginId:parameters.userId)再舉個例子再舉個例子l如過我要在groovy文件中指定
7、多個event,比如一個userLogin的增刪查改1、首先,創(chuàng)建一個UserLoginEvent.groovy2、在之前說的三種方式中配置文件路徑和調(diào)用方法3、在UserLoginEvent.groovy中編寫多個方法 def userCreate() user=delegator.makeValue(“UserLogin”,userLoginName:,userLoginPassword:parameters.pass); user.create() return success(“success”) def userDelete() try dispatch
8、er.runSync( userDeleteService, userLoginId:parameters.id) catch(Exception e) logError(“delete userLogin faild,reason:”+e.getMessage) 多條件查詢def findUserList() List conditionList = newnew ArrayList() if() conditionList EntityCondition. makeCondition(“userLoginName”,) if()
9、userList=delegator.find(“UserLogin”,conditionList null,null,null,false) request.setAttribute(“userList”,uesrList) return success()Groovy的高級特性使用的高級特性使用l通過上面例子,上面的寫法,實際上和Java本身沒什么區(qū)別,無非就是一些對象、參數(shù)的綁定啊,groovy的簡單用法l下面講一下元編程在groovy中的用法和好處什么是元編程什么是元編程l在程序運行時完成部分本應在編譯時完成的工作 l比如運行期動態(tài)增加類的方法、修改類的成員域的定義等等Groovy中的
10、元編程中的元編程l兩種方式lExpandoMetaClass和和Category 舉個例子舉個例子l首先我們看多條件查詢剛才的寫法 List conditionList = newnew ArrayList() if() conditionListreturn v?EntityCondition.makeCondition(delegate, EntityOperator.LIKE, %+v+%):null我們這兒就可以這樣寫查詢操作lconditionList return delegator.findList(delegate,EntityCondition.makeCondition(c),f,null,null,false) findOnec-return delegator.findOne(delegate,c,false)ll這樣,我們在查詢列表時可以這樣寫l“UserLogin”.findList(userLoginName:”zhny”,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年EMI屏蔽材料合作協(xié)議書
- 2025年廢舊材料回收加工合作協(xié)議書
- 2025年石墨及炭素制品合作協(xié)議書
- 2025年正電子發(fā)射體層成像裝置(PET)合作協(xié)議書
- 2025年HCA衛(wèi)生紙起皺粘合劑項目發(fā)展計劃
- 農(nóng)村信息技術服務協(xié)議規(guī)范
- 生態(tài)養(yǎng)殖場建設運營與安全管理責任協(xié)議
- 汽車租賃公司共享服務平臺協(xié)議
- 2025年行政管理考點重點及試題答案
- 智慧農(nóng)業(yè)軟件開發(fā)服務合同
- 血液凈化標準操作規(guī)程 2021 版
- 保護患者隱私權醫(yī)療AI技術的倫理要求與實踐
- 權益配置與代理關系的成本效益分析
- 空地或鋪面出租合同協(xié)議
- 2025年全國保密教育線上培訓考試試題庫及答案【網(wǎng)校專用】含答案詳解
- 華為管理面試題及答案
- 2024年廣州醫(yī)科大學校本部招聘工作人員筆試真題
- 初中2年級家長會課件
- 2025餐飲轉(zhuǎn)讓合同協(xié)議書 餐飲轉(zhuǎn)讓合同協(xié)議書范本
- 2024-2025學年統(tǒng)編版小學道德與法治三年級下冊期中考試測試卷附答案
- 智能垃圾桶設計方案資料
評論
0/150
提交評論