‘壹’ 从产品展示页面谈谈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等模块的作用。