Hybris商务套件中的 Jalo层服务层有什么区别?如果有人可以举一个例子,我将不胜感激。我知道Jalo层已被弃用,但是仍然必须指定要在平台中使用的层,那么我将在哪里告诉Hybris或如何告诉Hybris使用特定的层?

最佳答案

我认为最好阅读有关两者的相当不错的hybris Wiki:

Jalo:https://wiki.hybris.com/display/release5/Jalo+Layer

服务层:https://wiki.hybris.com/display/release5/ServiceLayer

您不必指定使用哪个(它们都一直在运行),并且如果您开始一个新项目,您基本上必须(或者至少真的应该!)使用服务层,因为Jalo将会消失(因此它们至少要在相当长的一段时间内说出来)。
简而言之,Jalo是旧的持久性机制,而引入服务层是为了解决jalo层所遇到的各种问题(性能/缓存,可扩展性等)。

因此,如果您将仅/主要从事新项目,则可能不必了解太多有关jalo层的知识,但是如果您计划成为Hybris顾问或从事旧的传统Hybris代码,则必须处理Jalo更多。

一个小例子:
在您的items.xml文件(用于声明数据模型的位置)中,可以指定jaloclass属性,该属性使平台为您创建Java类。
例如:core-items.xml具有用Product声明的jaloclass="de.hybris.platform.jalo.product.Product"
该平台还会自动创建相应的服务层类(始终称为*Model.java,例如de.hybris.platform.core.model.product.ProductModel)。
jalo层的一个限制是例如如果您想在自己的扩展中使用某些属性扩展Product项类型,则新创建的属性将不在Product jalo类中(因为它位于平台中并且仅创建一次),但是它将可以在您的扩展管理器类上使用,这有点不直观且麻烦。服务层仅在分析并合并所有注册的扩展之后才创建其所有模型类,因此可以在实际的ProductModel类中添加该属性。
还有更多不同之处,因此,如果您有更具体的问题,请随时提出:)

10-06 05:12