`
JerryWang_SAP
  • 浏览: 1032574 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

SAP Hybris的Convertor, Populator, Facade和DTO这几个概念是如何协同工作的

阅读更多

Hybris里极其重要的概念。

之前的issue谈到了Hybris MVC里的M指的是DTO,JSP作为V显示DTO的value,而DB层的Model和DTO的结构不一致。

那么,数据从DB读取之后,需要经过一个转换,写入到DTO。执行这个转换的role,就是Convertor+Populator。

注:DTO是软件设计里一个common的概念,不是Hybris特有。定义见[wiki](en.wikipedia.org/wiki/D)

# Hybris官方定义

(1) Facade: A facade is a software design pattern that abstracts from an underlying implementation and offers an alternate, often reduced and less complex interface.

(2) DTO:Data Transfer Objects (DTOs) are objects created to only contain values and have no business logic except for getter and setter methods. Using DTOs, you can "combine" Hybris items - for example, this document adds price- and media-related data to a product object.

先看CRM。

line 17的方法从CDS view里读取persistent data:

这样做类比。

可以看到CRM两个layer之间的转换非常light weight,仅仅是几个赋值操作。

Hybris里把这个赋值操作封装到了两个新的object里:Converter和Populator。

为什么要搞这么麻烦:

(1) Data objects are constructed from Models or other Service Layer objects using Converters and Populators. The Data object is always created from a prototype-scoped spring bean that is defined in the beans.xml file for the extension.

(2) Converters create new instances of Data objects and call Populators to populate these.

即Converter负责创建Data object的实例(就是Java class的实例), Populator负责call这个实例的setter方法把业务数据写入data obeject,这样JSP绑定到这些data object的某个属性的field就能显示出来值。

既然Hybris基于Spring,那么也要follow Spring的一些原则:

(1) No concrete Converters should be written, all converters should be Spring configured only and should use the AbstractConverter base class.

(2) No Populator should be called directly in code, Converters should be Spring injected and used.

(3) All conversion logic should exist in Populators and these should be well-encapsulated and independent.

# Populators

Populators break the conversion process of filling out a Data Object down into a pipeline of population tasks or steps. Each Populator carries out one or more related updates to the Data Object prototype. Each population step can invoke services or copy data from the source business object to the prototype Facade Data object. Facades always use a Converter to create a new instance of a Data Object prototype and then invoke Populators or other Converters to fulfill the task of building up the Data Object.

看具体的例子:

这个文件位置:

"C:\Hybris\6.5.0.0.23546\hybris\bin\ext-accelerator\acceleratorservices\src\de\hybris\platform\acceleratorservices\payment\cybersource\converters\populators\PaymentDataPopulator.java"

为什么要单独抽象这两个object出来?和CRM Genil layer的实现一对比就清楚了。

0
1
分享到:
评论

相关推荐

    SAP hybris电商实施和开发

    平台的开放性也是SAP hybris的一个显著特点,它支持多种协议,例如SOAP和RESTful Web Services,能够轻松地与ERP、PLM、CRM等企业级系统集成,这对于已经部署了这些系统的客户来说是一个重要的优势。这种开放性也...

    SAP Hybris 框架介绍

    `Solution Brief_SAP Hybris Marketing 开展一对一营销_zhCN.pdf`这个文件可能详细介绍了SAP Hybris的市场营销模块,该模块旨在通过大数据分析实现一对一的精准营销。它可能涵盖了以下几点: 1. **客户洞察**:利用...

    SAP hybris 6.4 B2C平台搭建文档

    ### SAP Hybris 6.4 B2C 平台搭建详解 ...对于初学者而言,理解每一个步骤背后的原理对于后续的开发和维护工作至关重要。此外,遇到问题时耐心地查找原因并逐一排除,也是提高解决问题能力的有效途径。

    藏经阁-SAP Hybris零售行业解决方案 SAP Retail Industry Solution with Hybris

    SAP Hybris作为客户参与和商务的基础,与SAP ERP Retail、SCM、CRM等模块紧密集成,形成一个强大的全渠道生态系统,包括云销售、营销数据管理、物联网(IoT)工具、社交媒体互动等,为零售商和品牌商提供全方位的...

    掌握Java-SAP Hybris组件:专业级培训与实践

    - **SAP Hybris电子商务平台开发者**:对于已经熟悉或正在学习Hybris平台的开发者来说,掌握Java-SAP Hybris Component是非常重要的一步,这将极大地提升他们在项目中的贡献度和工作效率。 - **对Java编程感兴趣的...

    Java-SAP Hybris Template Builder:高效构建电子商务模板的终极工具

    - **理解基本概念和用途**:了解 Java-SAP Hybris Template Builder 的核心理念和技术优势。 - **掌握使用方法**:学会如何利用该工具创建和管理电子商务模板。 - **提高开发效率**:通过模板化开发减少重复工作,...

    SAP hybris电子商务全渠道解决方案介绍

    SAP hybris电子商务全渠道解决方案介绍 加QQ2823792750 获取

    hybris的搭建、使用、集成eclipse(中文版)

    2. **配置Hybris插件**: 在Eclipse的“Preferences”中,找到“SAP Hybris Commerce Platform”设置,配置Hybris安装路径和工作空间。 3. **创建连接**: 在“Servers”视图中,右键选择“New” -> “SAP Hybris ...

    用于客户Gmail插件的SAP Hybris Cloud「SAP Hybris Cloud for Customer Gmail Add-in」-crx插件

    借助适用于客户的SAP Hybris Cloud插件,您可以利用您每天使用的工具提高工作效率。该扩展将Gmail与SAP Hybris Cloud for Customer解决方案连接起来,在向潜在客户和客户发送电子邮件时提供所有销售信息的快速浏览,...

    hybris帮助文档

    "Hybris帮助文档"这个压缩包可能包含了这些学习资料,包括教程、API参考、最佳实践指南等,对理解并掌握Hybris系统非常有帮助。 总之,Hybris是一个强大且灵活的电子商务平台,其全面的功能和强大的技术特性使其...

    2017年SAP Hybris 消费者洞察报告 - 中国

    数字创新现已改变我们的生活方式:沟通、购物、支付、学习和工作。同时也改变 了我们追求爱情的方式。如今,由于网上交友提供了更多选择和机会,通过 Tinder 等应用程序找到潜在伴侣的情况并不鲜见。但寻求和发展...

    hybris入门手册_hybris

    【标题】"hybris入门手册_hybris"涵盖了SAP的hybris平台,这是一个高度可扩展的电子商务解决方案,主要用于构建B2B和B2C在线商店。Hybris平台结合了内容管理、订单处理、产品目录管理、客户服务和市场推广等多种功能...

    sap hypris学习资料

    在深入探讨SAP Hybris的学习资料之前,让我们先了解这个系统的一些核心特性。 1. **多渠道支持**:SAP Hybris支持包括Web、移动设备、社交媒体、实体店等在内的全渠道商务。这意味着商家可以提供一致的用户体验,...

    sap学习操作手册,帮助文档

    通过深入学习这份手册,无论是初学者还是有经验的SAP用户,都能提升对SAP Business One的理解和操作技能,更好地利用这一强大的工具来优化企业的业务流程和管理效率。 总的来说,这个压缩包提供的资料对于学习SAP...

    hybris:Worldpay SAP Hybris插件

    适用于SAP Commerce Cloud的Worldpay连接器SAP Commerce Cloud的Worldpay连接器是Commerce店面的无缝扩展,使零售商可以通过一次集成以安全,合规和统一的方式实施其全球支付策略。 广泛的WorldPay扩展使零售商能够...

    hybris电商开发实施路线和流程.pptx

    本文将详细介绍SAP hybris作为一个强大的电子商务解决方案的开发实施路线、流程和核心技术。SAP hybris是一款专为B2C和B2B电子商务设计的全面解决方案,以其模块化和服务导向的架构著称,强调对电子商务的专注和强大...

    Hybris Trail学习指南_中文

    Hybris,现已被SAP收购,是一款全球领先的多渠道商务解决方案,它提供了强大的B2B和B2C电子商务功能,以及集成的订单管理、客户服务、营销和分析工具。通过Hybris Trail,你可以系统地学习这个平台的各个方面,提升...

    带有流浪汉的安装混合:使用流浪汉安装SAP Hybris

    总结来说,这个教程将指导你如何利用Vagrant这一强大的工具,创建一个标准化的环境来安装和运行SAP Hybris。通过这种方式,你可以避免在本地系统上安装复杂的依赖,同时保证开发环境的一致性,提高团队协作效率。

    hybris commerce developer traning 1

    hybris(现为SAP Commerce Cloud)是一个多渠道电子商务软件解决方案,它为商业机构提供了一个灵活的平台,以开展多渠道电子商务和增强型客户服务。根据所提供的文件内容,我们可以从中提取出以下几个知识点: 1. ...

Global site tag (gtag.js) - Google Analytics