乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Ofbiz學(xué)習(xí)-2

       lwj888 2007-06-17
      ofbiz architecture 我 簡(jiǎn)單談一下整體架構(gòu),可能有不對(duì)地方,請(qǐng)大家指正,我覺(jué)得ofbiz對(duì)于建立大中型產(chǎn)品系統(tǒng)非常有借鑒,一般中大型應(yīng)用抽象歸結(jié)不外乎三種模型:數(shù)據(jù)庫(kù)、 處理器服務(wù)service 以及流程定義,這三個(gè)方面ofbiz正是ofbiz的基礎(chǔ):ofbiz主要是分幾塊引擎:Entity 和Service 和工作流。

      Entity非常類似EJB中的實(shí)體bean,它負(fù)責(zé)系統(tǒng)中所有數(shù)據(jù)庫(kù)部分,就類似在內(nèi)存中建立數(shù)據(jù)庫(kù)的表,有兩個(gè)重要類GenericDelegator,專門負(fù)責(zé)數(shù)據(jù)源; GenericValue 是具體product的抽象類。


      我們?cè)倏磗ervice,GenericEngine是核心,包括同步服務(wù)和異步服務(wù),這兩種service在J2EE中就是servlet/session bean的同步處理和JMS的異步服務(wù)。

      所有的service通過(guò)ServiceDispatcher進(jìn)行分配,需要同步服務(wù)的,分配GenericAsyncEngine出來(lái)服務(wù),同時(shí)檢查該用戶是否擁有這類服務(wù)的權(quán)限。每個(gè)GenericDelegator都對(duì)應(yīng)一個(gè)ServiceDispattcher。

      ModelService 這是將request信號(hào)分解后,根據(jù)requestHanlder取出相應(yīng)service后的一個(gè)承前啟后的類,它有IN/OUT/INOUT三個(gè)mode。

      我們看看下面service配置類:

      <service name="userLogin" engine="java"
      location="org.ofbiz.commonapp.security.login.LoginServices" invoke="userLogin">
      <description>Authenticate a username/password; create a UserLogin object</description>
      <attribute name="login.username" type="String" mode="IN"/>
      <attribute name="login.password" type="String" mode="IN"/>
      <attribute name="userLogin" type="org.ofbiz.core.entity.GenericValue" mode="OUT" optional="true"/>
      </service>

      上 面的service名稱是userLogin,它是采用java engine. 這個(gè)服務(wù)需要兩個(gè)輸入?yún)?shù)(來(lái)自request): login.username and login.password. 如果這兩個(gè)參數(shù)不符合名稱和對(duì)象類型,這個(gè)service將不會(huì)調(diào)用,有些參數(shù)可以不發(fā)往給service,這些參數(shù)需要定義為optional.

      在這個(gè)service被調(diào)用以后, 輸出OUT參數(shù)將被檢測(cè)一下,當(dāng)然只有標(biāo)記為required才會(huì)被檢測(cè),當(dāng)然這個(gè)服務(wù)也可以不返回任何參數(shù)。


      ofbiz也有自己一套類似struts的MVC模型。

      ofbiz的Entity引擎雖然不錯(cuò),可以在上面掛很多具體應(yīng)用,但是我感覺(jué)似乎復(fù)雜點(diǎn),不如使用Jbuilder CMP來(lái)開發(fā)更方便。

      ofbiz的service framework是最值得借鑒的。

      步驟大概是這樣:
      1. 編寫xpdl文件
      2. 把xpdl文件用webtools下提供的xpdl reader 導(dǎo)入到數(shù)據(jù)庫(kù)
      3. 在service定義文件里添加上你寫的workflow的表示, service type是workflow
      4. 寫好你在xpdl文件里用到的一些自定義的Implementation Tool, 我都是用PROCEDURE, 即service, 用來(lái)實(shí)現(xiàn)對(duì)應(yīng)用數(shù)據(jù)的操作.
      5. 如果你有用到ExtendedAttribute的limitAfterStart, 還要寫limitService, 通常我用limitService來(lái)實(shí)現(xiàn)超時(shí)處理.
      6. 最后是寫一些test unit利用service engine來(lái)做一些測(cè)試, 主要目的是看定義在xpdl里的Transitions是否正確.
      我的文檔向來(lái)寫得很差, 以上只是一些要點(diǎn), 希望對(duì)你有用.

      我道建議你先看看ofbiz中的XPDL,從這里入手你會(huì)決定容易一點(diǎn)。

      ofbiz_home\commonapp\src\org\ofbiz\commonapp\order\order\orderProcessXPDL.xml 讀懂它可能你還要參看WFMC關(guān)于接口一的文章

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多