『壹』 從產品展示頁面談談Hybris的特有概念和設計結構
本文將介紹Hybris電商平台的主要概念和設計結構,重點通過產品展示頁面進行闡述。
Hybris是SAP旗下的電商平台,以其擴展性和易用性在國際電商評測中名列前茅。Hybris ECP全稱為Hybris E-Commerce Platform,簡稱為Hybris。
Hybris的特有概念包括:
1. **Accelerator**:由Hybris功能模塊構成的實例,用於模擬和演示電商場景,也可根據客戶需求進行簡單的定製開發直接應用於生產環境。
2. **Recipe**:用於安裝Hybris的腳本,存於installer文件夾下的recipe子文件夾。可用來安裝加速器、SAP整合版本或Docker版本的Hybris實例。
3. **Extension**:從業務角度看,服務於特定Hybris業務的功能模塊;從工程角度看,解壓Hybris後,bin文件夾內的每個子文件夾都包含一個工程文件夾,即一個extension,recipe安裝的組件是多個extension的組合。
4. **Template**:Hybris設計具有高度可擴展性,提供了許多模板工程供客戶參考、擴展或直接使用。產品頁面的View層存在於yacceleratorstorefront這個模板內。
Hybris的層級結構劃分如下:
Hybris類似於使用Spring Framework的常見Web應用,一般分為前端頁面(View層)、Spring MVC Controller和Spring注入的Service(Controller層),以及整合ORM框架的DAO(Model層)。然而,Hybris的結構分為三層,即View層、Service層和Facade(即DTO數據傳輸對象層),其中Facade層在中間單獨存在。
在Hybris 6.5版本中,安裝包大小約2GB左右。通過解壓並使用特定命令啟動Hybris實例,初始化數據後,訪問特定網站即可進入產品詳情頁面。
產品鏈接格式為「/p+產品代碼」,其中「/p/」前的部分是產品詳細類別和名稱的組合,根路徑是yacceleratorstorefront。yacceleratorstorefront是Hybris的主要view層模板擴展,包含spring mvc控制器代碼和前端頁面代碼(使用JSP+Jquery)。在控制器中調用facade層的proctFacade方法獲取產品明細數據,此數據通過ProctConverter轉換為DTO對象ProctData。
在DefaultProctFacade中,ProctData是由ProctConverter生成的。Converter的作用是將ProctModel轉換為DTO對象,實現對象定義和代碼的隔離。這種基於配置文件生成Java類的方式,即使需要調整對象屬性,也只需修改xml定義,重新編譯即可。
Hybris的Facade層和Service層將在後續文章中詳細介紹,包括DTO、DAO、Converter、Populator等模塊的作用。