当前位置:主页 > 混合云 > 正文

华为云_无锡公司网站建设_便宜的

时间:2021-05-04 19:15 来源:埃里克云 编辑:埃里克云

核心提示

简介 在SAP Commerce中开发自定义扩展时,您将在项目中大量实施转换器和填充器模式。如果您查看任何加速器代码库,您将看到此模式被广泛使用。 在这篇文章中,我们将深入探讨为什...

简介

在SAP Commerce中开发自定义扩展时,您将在项目中大量实施转换器和填充器模式。如果您查看任何加速器代码库,您将看到此模式被广泛使用。

在这篇文章中,我们将深入探讨为什么需要使用此模式,使用此模式的一些优点,我们将通过一个示例了解此模式是如何实现的。

为什么需要它们?

在大多数应用中,我们需要从更大的数据结构中创建数据子集。例如:-我们可能在数据库中有一个customer表,它有100个字段,但是我们可能只需要10个字段(应用了一些逻辑)就可以在UI上显示。您的模型对象(源)是较大的数据结构(包含数据库中的所有数据),让我们将您的屏幕需要目标数据结构的数据子集称为DTO(数据传输对象)。我们称之为目标,因为我们试图从源(模型)转换到目标(DTO)。

因此,使用转换器和填充器,我们试图通过使用填充器转换源模型对象来填充DTO来创建目标DTO。

下图描述了我们正试图实现的高级视图完成。

优点

我知道您可能会想,为什么我们不能从模型对象中选择我们需要的数据,并将我们想要的业务逻辑应用于这些字段。

SAP Commerce将此定义为可重用模式的几个原因它们是:-

1. 外部敏感性:-自SAP Commerce建立在一个可扩展的平台上,如果我们需要从一个扩展向一个现有的DTO添加数据,那么添加额外的Popluators就更容易了。

2。体育课绩效:-我们通常不希望将模型对象中的所有数据发送到消费店面或web服务。此模式允许我们仅转换和填充店面上的必填字段。

3。Te公司稳定性:-Its通过为那些填充器的依赖项创建模拟接口,为进行填充的代码开发测试用例非常容易。客户组织化:-按将填充目标数据对象的责任委托给填充器,我们可以让其他扩展使用它们实现的自定义业务逻辑在目标对象中添加/删除/覆盖数据。

现在我们已经定义了我们要做的事情以及为什么需要转换器和填充器以及使用模式。让我们看看SAP Commerce是如何实现转换器和填充器的。

实现

SAP Commerce中典型的程序执行流程是这样的。

控制器->外观->服务->DAO

转换器和填充器存在于外观层。

从上面的图中,您可能会想转换器适合哪里?

转换器为facade提供了一个统一的接口来调用为该转换器配置的所有填充器。

下图捕获了转换器如何触发填充器以及DTO如何发送到Facades的高级流。

我们将使用CMS Facades中的一个示例进行后续操作。

我们将选取特定示例负责使用ResponsiveMediaFacade提供响应图像。此facade由控制器SimpleResponsiveBannerComponentController调用。

facades通过调用服务层(大多数情况下)或直接实例化模型来实例化模型对象。之后,然后facade调用Converter,Converter返回控制器对UI所需的DTO。

在开始实现此功能之前,您需要了解店面需要哪些数据,以及需要从哪些模型对象获取这些数据,并确定是否有任何现有的转换器可供扩展和维护修改/添加现有填充器。

以下是如何定义转换器和填充器的步骤。

1。在*facades中定义转换器-spring.xml文件.

定义转换器时,我们需要指定目标对象是什么。换句话说,我们希望我们的转换器构建的DTO。

在我们的示例:-

Populators属性有几种方法可以注入

a.单个Populator

b.Populators列表

c.将Populators合并到已定义的转换器

d.向转换器添加和删除Populators。

SAP Commerce调用这些可配置/可修改的填充者

2。定义并开发所有填充器。

a.定义

注意,在这个特殊的情况下,响应MediaContainerPopulator需要另一个转换器来完成其工作。

b.开发

所有填充器实现Populator接口并实现populate方法。

populate方法可以像获取和设置值一样简单从模型对象(源)到目标(DTO)或调用服务获取附加数据或调用其他转换器获取另一个DTO。

3。创建一个引用转换器的外观。

4。在Facade中调用convertors convert或convertAll方法。

这里我们调用converters covert方法或convertAll,它按顺序调用为该转换器定义的所有填充器。

在我们的示例中,这是在getImagesFromMediaContainer中完成的。

希望这不仅为您提供了更好的想法,而且还为您提供了如何实现它的方法此外,还将介绍SAP Commerce使用此模式的原因。

  • 企业网站_新白娘子传奇百度云_折扣 企业网站_新白娘子传奇百度云_折扣

    你好,社区, BSI TaxFactory和TaxFactory SaaS发布版本11.0可用。 在我们的合作伙伴BSI将其产品/产品BSI TaxFactory 10.0的维护延长至2021年4月30日之后。SAP还决定在2021年4月30日之前为BSI TaxFactor...

  • 消息队列_华云服务器_限量秒杀 消息队列_华云服务器_限量秒杀

    啊。我已经很久没在这里写博客了-对不起? 但这是一个很好的机会让我重新上马,这是我与SAP TechEd Barcelona的SAP社区负责人Craig Cmehil的"无采访视图"(无采访视图就像一次真正的采访...

  • <strong>域名备案_查看数据库密码_怎么样</strong> 域名备案_查看数据库密码_怎么样

    在本文中,我们将看到如何在sapcloudfoundry环境中为Spring启动应用程序配置OAuth2授权。但是在这样做之前,让我们先熟悉一下这个实现中涉及的几个重要概念。 简介 OAuth2–是一个授权框...

  • <strong>MySQL数据库_网站cdn_多少钱</strong> MySQL数据库_网站cdn_多少钱

    您已经听说了SAP Graph在SAP TechEd Las Vegas 2019发布的消息。微软Graph也非常棒,非常相似(哲学上+技术上),它不仅非常有用,而且我会给你一个微软Graph的工作示例/教程,让你了解它,...

  • 京东云_网站建设中页面_学生机 京东云_网站建设中页面_学生机

    在可预见的未来,向S/4HANA过渡的公司特定规划已将每个SAP客户列入其议程。S/4HANA实施项目越来越近了,因此也有一个问题:在技术和开发层面必须做哪些准备?正是这个主题是"S/4H...

  • <strong>天翼云_网站服务器失去响应怎么回事_代</strong> 天翼云_网站服务器失去响应怎么回事_代

    大家好, 欢迎来到一个关于用户浏览器没有启用JavaScript的用户体验主题的简短博客。 考虑到1%的设计理念,如果我们考虑那些禁用或不可用JavaScript的浏览器的用户(出于"天知道为什...

  • <strong>对象存储_网站建设外贸_速度快</strong> 对象存储_网站建设外贸_速度快

    在本文中,我将展示如何通过负载平衡器为我们的生产数据库构建一个具有高可用性的HANA驾驶舱。我建议您开始阅读SAP指南HowTo:High Availability for SAP HANA cockpit using SAP HANA system replicat...

  • <strong>中间件_重庆网站建设策划_促销</strong> 中间件_重庆网站建设策划_促销

    SAP Customer Data Cloud在9月份推出了许多功能。如果你错过了这些,下面是我们9月份发布的几个亮点。 与苹果公司登录:苹果公司已经发布了使用苹果ID登录应用程序的选项。他们甚至规...

  • 消息队列_马云御任阿里巴巴_年度促销 消息队列_马云御任阿里巴巴_年度促销

    本周在拉斯维加斯TechEd看到的创新给我留下了非常深刻的印象。今年似乎出现了比过去更多的业务倾斜。主要的宣布是我们可以通过业务技术平台扩展SAP应用程序 HANA云服务(HCS)是业...