hybris populators 和 converters 概念及其关系

hybris populators and converters concept and their relationship

有人可以解释一下 Hybris 中使用的 converterspopulators 的概念吗?我正在研究 Hybris 中 AddOns 的概念,但是在我们在 Hybris 商业加速器中使用 AddOns 之后,其中一个要点说 "You can plug populators into existing converters without having to redefine them"?所以我觉得先了解这些概念比较好。

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

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

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

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

干杯!

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

//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);

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

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

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

希望对您有所帮助!