<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hengheng123456789

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
    Liferay 不再依賴于 EJB ,它完全可以單獨裝配到一個 servlet 容器(如: Tomcat,JBoss 等)中。而所有的業務邏輯都通過 Spring 管理的 POJO 來實現。這樣的實現利益于 Spring AOP IOC 特性。

    但在POJO的實現方法上Liferay的兩個版本有所不同,企業版(enterprise)中通過EJB從而為大站點提供了高擴展性各良好的事務支持能力(如集群),而專業版(professiona)直接通過輕量級的接口完成。

    所有的業務數據都通過Hibernate來實現并通過POJO來調用。Liferay曾經使用CMP技術.來實現持久層,但后來因速度及靈活性等原因改用Hibernate。在數據庫方面,Liferay也完全兼容大多數主流類型DB

    Liferay使用JAAS來完成用戶認證安全管理,好處是當一個用戶登錄后,它的安全屬性可以在ServletEJB層中沿用,真正作到系統級的SSO。具體講,遠程EJB可以沿用安全檢查及權限屬性,本地的EJB是為其它EJB提供業務邏輯服務的,不能被遠程調用所以也不必做此類檢查;安全原則也派生到POJO實現中,而這此實現其實是遠程EJB的基礎類。

    企業版式使用EJB,所以系統分別可以在WEB服務器、EJB服務器、數據庫服務器三層中實現集群。當然在n層的系統中,集群也保持優勢,而且在每一層都并不強迫使用集群,這些都為大企業應用提供了極好的彈性選擇權。

    系統中的EJBHBM、以及模式Model者是ant執行build-ejb任務時,通過讀取目錄/portal-ejb下的ejb.xml文件,然后自動生成的。每個有持久層對象的門戶單元(portlet)都有自己的ejb.xml文件(可以在/portal-ejb下搜索得到清單)。當需要生成持久層的類時,就把文件復制到/portal-ejb下,這生成工具是建立在XDoclet之上的。

    例如:通過讀取Bookmarks門戶單元的ejb.xml文件配置后,自動生成下列的模式類。每個類對應數據庫中的一個表。永遠不要手工修改BookmarksEntryModel類,而要通過修改BookmarksEntry,然后再更新BookmarksEntryModel內容。這樣做的好處是減少了直接寫代碼的工作,而只做相應的標記工作。
    com.liferay.portlet.bookmarks.model.BookmarksEntry
    com.liferay.portlet.bookmarks.model.BookmarksEntryModel
    com.liferay.portlet.bookmarks.model.BookmarksFolder
    com.liferay.portlet.bookmarks.model.BookmarksFolderModel

    Hibernate類是根據模式(model)類對應生成的。這樣就可以在多層系統中允許模式類是可作序列化處理的,而Hibernate類則不必。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryHBM
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderHBM

    持久層的方法如:add, update, delete, find, remove, 以及count,系統都默認自動生成。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryPersistence
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderPersistence

    也生成了專門的協助類(Helper classes),可以用來調用持久層方法。默認時,協助類調用Hibernate的方法來對數據庫進行更新操作,但是也可以改寫portal.properties中的配置,使用自己專用的類來完成,但這種類要求要繼承默認的持久層類。換言之,用戶完全可以定制自己的持久層數據,可以是一個正統的數據庫,或者是LDAP服務器,其它什么的。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryUtil
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderUtil

    為了減少對象生成的成本,引入了對象池,可以通過修改portal.properties文件來控制池的基本動作。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryPool
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderPool

    用來實現業務邏輯的POJO類,通過繼承PrincipalBean類,來實現有關調用者的方法,所以可以遠程調用。如:調用getUserId()可以得到當前用戶的ID;調用getUser()則返回當前用戶的對象。EJB再繼承這類POJO,實現遠程調用。

    例如:下面的類實現了,允許當且公當bookmark項目或目錄的生成者可以刪除它。這些對象只有在不存在時才可能被創建。

    協助類(Helper classes)是在POJO的實現基礎上生成的。它可以節約開發者的工作,不必書寫很多行的代碼,而只要簡單的找到合適的EJB wrapperPOJO實現,通過調用BookmarksEntryManagerUtil.addEntry來間接調用相應的BookmarksEntryManagerImpl.addEntry方法就可以了。

    BookmarksEntryManagerUtil通過調用BookmarksFolderManagerFactory來查找實現BookmarksEntryManager的類。也正是通過BookmarksFolderManagerFactory來識別Springportal.properties中的配置來決定要是載入EJB wrapper還是POJO實現。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManager
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManagerEJB
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManagerEJBImpl
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManagerFactory
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManagerHome
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManagerUtil
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManager
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManagerEJB
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManagerEJBImpl
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManagerFactory
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManagerHome
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManagerUtil

    隧道類(Tunneling classes)是用來實現通過80端口來調用POJO的。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManagerHttp
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManagerHttp

    Soap類也是用來實現通過80端口來調用POJO的。雖然與隧道類相比Soap類在速度上要差一點,原因是隧道類使用二進制數據流。但Soap類用靈活,可以適用各種客戶端(不局限于Java)。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryManagerSoap
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderManagerSoap

    Soap類也是用來實現通過80端口來調用POJO的。雖然與隧道類相比Soap類在速度上要差一點,原因是隧道類使用二進制數據流。但Soap類用靈活,可以適用各種客戶端(不局限于Java)。這些類只有在檢驗到不存在時才會被創建。同時協助類也生成了。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryLocalManager
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryLocalManagerEJB
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryLocalManagerEJBImpl
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryLocalManagerFactory
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryLocalManagerHome
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryLocalManagerUtil
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderLocalManager
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderLocalManagerEJB
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderLocalManagerEJBImpl
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderLocalManagerFactory
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderLocalManagerHome
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderLocalManagerUtil

    但總有一些用戶需要調用引種當地類,于是完全相對應的遠程類也應用而生了。
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryRemoteManager
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryRemoteManagerEJB
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryRemoteManagerEJBImpl
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryRemoteManagerFactory
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryRemoteManagerHome
    com.liferay.portlet.bookmarks.ejb.BookmarksEntryRemoteManagerUtil
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderRemoteManager
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderRemoteManagerEJB
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderRemoteManagerEJBImpl
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderRemoteManagerFactory
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderRemoteManagerHome
    com.liferay.portlet.bookmarks.ejb.BookmarksFolderRemoteManagerUtil


    許多人避免使用EJB,因為它的重量級,需要大量的代碼工作。Liferay的自動生成腳本可以使得,既不損失EJB的優點,而且還最小化重復的代碼等工作,從而你可以在努力與結果之間找到一個良好的平衡點。

    Spring也給Liferay帶來了更多的好處。開發者既可以利用專業版在一個servlet容器中測試POJO的實現,也可以通過企業版在應用服務器上裝載要上線的產品。


    posted on 2007-02-10 13:10 哼哼 閱讀(1196) 評論(1)  編輯  收藏 所屬分類: JAVA-Web

    Feedback

    # re: Liferay Portal 技術理解之 概述 2008-07-04 21:28 Beijing_M
    Hi ,好消息和大家分享:

    Liferay 大連的聯系方式:
    MSN: eonpeter@gmail.com
    大家可以和peter聯系,可以從他那得到足夠幫助  回復  更多評論
      

    主站蜘蛛池模板: 久久亚洲AV无码西西人体| 亚洲电影一区二区| 巨胸喷奶水www永久免费| 亚洲精品在线不卡| 小小影视日本动漫观看免费| 久久国产一片免费观看| 亚洲精品在线网站| 亚洲国模精品一区| 亚洲啪啪免费视频| 成人免费夜片在线观看| 无套内谢孕妇毛片免费看看| 国产精品亚洲片在线| 成在人线AV无码免费| 国产一精品一AV一免费| 亚洲国产成人手机在线观看| 亚洲av之男人的天堂网站| 成人男女网18免费视频| 精品国产免费一区二区三区香蕉| 亚洲熟妇AV一区二区三区浪潮| 国产亚洲精品观看91在线| 永久久久免费浮力影院| 最近免费中文字幕大全免费版视频| 国产精品成人亚洲| 亚洲成a人片在线观看中文app | 国产成人A人亚洲精品无码| 四虎www免费人成| 7m凹凸精品分类大全免费| 成年大片免费高清在线看黄| 国产精品亚洲四区在线观看| 久久精品国产亚洲av麻豆| 亚洲最大av无码网址| 色播在线永久免费视频| 日本XXX黄区免费看| 老司机69精品成免费视频| 一级毛片免费在线观看网站| 色噜噜噜噜亚洲第一| 国产99在线|亚洲| 亚洲欧洲中文日产| 婷婷精品国产亚洲AV麻豆不片 | 很黄很色很刺激的视频免费| 日韩人妻一区二区三区免费|