<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層的系統中,集群也保持優勢,而且在每一層都并不強迫使用集群,這些都為大企業應用提供了極好的彈性選擇權。

    系統中的EJB、HBM、以及模式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 哼哼 閱讀(1203) 評論(1)  編輯  收藏 所屬分類: JAVA-Web

    Feedback

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

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

    主站蜘蛛池模板: 亚洲精品国产精品乱码不卡| 热99re久久精品精品免费| 综合久久久久久中文字幕亚洲国产国产综合一区首| 在线综合亚洲欧洲综合网站 | 国产亚洲精品AA片在线观看不加载| 亚洲精品无码专区在线播放| 在线免费一区二区| 狠狠入ady亚洲精品| 免费v片在线观看品善网| 产传媒61国产免费| 亚洲熟妇无码乱子AV电影| 成人久久免费网站| 麻豆亚洲av熟女国产一区二| 日韩在线免费视频| 亚洲精品无码中文久久字幕| 四虎影在线永久免费四虎地址8848aa| 添bbb免费观看高清视频| 自拍偷自拍亚洲精品被多人伦好爽 | 看全色黄大色大片免费久久| 真人无码作爱免费视频| 中文字幕亚洲综合久久菠萝蜜 | 成全在线观看免费观看大全| 久久久久亚洲AV无码专区首| 国产一卡二卡四卡免费| 亚洲砖码砖专无区2023| 亚洲国产成人精品无码久久久久久综合 | 久久亚洲精品成人综合| 无码日韩精品一区二区免费| 国产成人 亚洲欧洲| 亚洲AV午夜福利精品一区二区| 亚洲性线免费观看视频成熟| 亚洲a∨无码一区二区| 亚洲综合精品香蕉久久网| 毛片免费全部播放无码| 苍井空亚洲精品AA片在线播放 | 久久久久久久亚洲精品| h片在线免费观看| 黄色网页免费观看| 亚洲精品第五页中文字幕| 又大又粗又爽a级毛片免费看| 亚洲免费在线视频|