填充器的实现方式

2020-09-15 02:32发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

我是Hybris的新手。 我需要了解如何在hybris中实现填充程序,并有完整的解释。

任何帮助将不胜感激。

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

我是Hybris的新手。 我需要了解如何在hybris中实现填充程序,并有完整的解释。

任何帮助将不胜感激。

谢谢

付费偷看设置
发送
2条回答
黑丝骑士
1楼-- · 2020-09-15 02:49

Anuj,你好

首先,这是一篇介绍填充器的文章: https://help.hybris.com/6.6。 0/hcd/8b937ff886691014815fcd31ff1de47a.html 还有一个简单示例的跟踪页面: https://help.hybris.com/6.6.0/hcd /56749e96d95a41ca8a1298bd8c59edda.html 由于该主题与DTO和转换器紧密相关,因此本文是有关Pest Practices的另一篇文章: https://help.hybris .com/6.6.0/hcd/8c7acd1986691014a5f4b5880d032474.html

通常-填充器和转换器:
它们都提供了从模型到数据传输对象(DTO)的一些交互。

  • 填充人员负责填写 现有DTO中的属性 来自模型的。

  • 转换器负责 将模型完全转换为新模型 DTO。

为避免代码重复:

  1. 转换器仅执行DTO创建

  2. 然后调用的有序列表 人口实际处理 属性填充。

有2种不同的填充器:

  • 直接填充器-每种类型都有其自己的填充器,仅负责填充直接和"本机"属性。

  • 关系填充器-每个类型都有一个填充器,用于每个采用基本类型并仅填充该关系的关系。 这只是一个"胶水"填充器,因为它仅以典型的"策略"模式调用相关的填充器。

编写填充器时的指南:

您不应在填充器中使用 instanceof

如果需要根据模型的类型填充一组不同的属性,则应使用2个不同的spring poppers Bean。
然后使用2个不同的spring转换器bean进行选择,或者:

  • 在立面上注入2 不同的转换器,并执行 instanceof 在那里

  • 在控制器中通过注入2 同一外观的实例 实现,但注入了不同的转换器。


您可以使用"代理转换器"。

如果使用多个转换器bean很麻烦,则可以注入一个代理转换器,它将选择正确的bean。
这将轻松注入该策略,而无需重构多层。


您不应该在会话中添加ID以外的任何内容

只有ID应该在会话中。 无论如何,您都将从实体缓存中检索模型。 如果不存在Model,则由于数据例如直接来自外部WebService,因此您可以创建一个Populator,该Populator调用依赖于根对象的对象,然后调用该WebService将远程数据注入DTO中。

一个很好的例子是从 CustomerModel 中检索 LoyaltyAmount ,以便能够在店面中显示它。 填充器将称为 LoyaltyAmountCustomerPopulator 。 然后可以使用标准DTO缓存包轻松缓存它。 甚至可以通过某些AOP在高负载时将其禁用。

希望这会有所帮助。
最好的问候,

槿木_熙
2楼-- · 2020-09-15 02:42

感谢雅库布(Jakub)您的迅速反应。

一周热门 更多>