【问题标题】:hybris populators and converters concept and their relationshiphybris populators and converters 概念及其关系
【发布时间】:2016-03-08 03:08:21
【问题描述】:

有人能解释一下 Hybris 中使用的 converters 和 populators 的概念吗?在 Hybris 商务加速器中使用 AddOns 后,我正在研究 Hybris 中 AddOns 的概念,但其中一点是“您可以将填充器插入现有转换器而无需重新定义它们”?所以我认为最好先了解这些概念。

【问题讨论】:

  • 简而言之,转换器是填充器的集合,其中每个填充器扮演单独的角色来填充 DTO 的一部分。 Hybris 强烈建议您不要编写具体的转换器(没有填充器)。至少一个填充器应与转换器绑定以填充其 DTO。而且它很容易即插即用。

标签: hybris


【解决方案1】:

简而言之,转换器用于从(大部分)模型对象中创建数据对象 (DTO),而填充器用于填充 dto。

您会在此处找到关于版本 5 的两个概念的非常好的文档: https://wiki.hybris.com/display/release5/Converters+and+Populators

这里是版本 6: https://help.hybris.com/6.0.0/hcd/8b937ff886691014815fcd31ff1de47a.html

(如果您还没有 wiki 访问权限,您应该获取它,因为 wiki 和https://experts.hybris.com 的专家论坛是获得大量答案的两个重要资源)。

干杯!

【讨论】:

    【解决方案2】:

    Hybris 转换器由特定类型的填充器列表组成,这允许您在为特定类型创建填充器的方式中保持一定的模块化,而不必为单个填充器承担太多责任。

    除此之外,您可以使用一个可配置的转换器,您可以在其中定义允许执行某些填充器的常量,例如,您不想填充所有字段的产品列表产品。

    最后,我还建议查看 hybris 帮助页面并反编译 hybris 源代码,以便更好地了解它们的实现。

    希望对您有所帮助!

    【讨论】:

      【解决方案3】:

      您应该首先为填充器创建对象,而转换器创建目标对象然后自动填充它。

      //converter example   
      Target target = targetConverter.convert(source);
      List<Target> targetList = sourceList.toStream().map(s->targetConverter.convert(s));
      
      //Populator example    
      Target target = new Target();    
      targetPopulator.populate(source, target);
      

      【讨论】:

        猜你喜欢
        • 2017-11-08
        • 1970-01-01
        • 1970-01-01
        • 2020-03-23
        • 2014-06-18
        • 2012-01-31
        • 2016-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多