Hybris Jalo层与服务层

Hybris Jalo层与服务层,hybris,Hybris,Hybris商务套件中的Jalo层和服务层有什么区别?如果有人能给我举个例子,我将不胜感激。我知道Jalo层已被弃用,但如果我必须指定在我的平台中使用哪一层,那么我将在哪里告诉Hybris或如何告诉Hybris使用特定层?过去,持久性和业务逻辑是在Jalo层中编写的。在引入服务层之后,Jalo层中现有的业务逻辑正在移动到服务层。因此,迁移到服务层的第一个目标是所有Jalo相关的类都不应该包含任何代码。 由于Jalo层不应再包含业务逻辑,因此公共API在未来将更小。它主要包括查询灵活搜索的方法和保

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

过去,持久性和业务逻辑是在Jalo层中编写的。在引入服务层之后,Jalo层中现有的业务逻辑正在移动到服务层。因此,迁移到服务层的第一个目标是所有Jalo相关的类都不应该包含任何代码。 由于Jalo层不应再包含业务逻辑,因此公共API在未来将更小。它主要包括查询灵活搜索的方法和保存和删除数据的通用方法。该功能已经由适配器服务(如FlexibleSearchService和ModelService)在服务层提供。在这种情况下,不再鼓励进入Jalo层。第二个目标是消除服务层现有类中的所有Jalo访问

资料来源:
访问

我认为最好是阅读非常好的hybris wiki,了解以下两个方面:

雅洛:

服务层:

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

因此,如果你将只/主要从事新项目,你可能不必获得太多关于jalo层的知识,但如果你计划成为hybris顾问或从事旧的遗留hybris代码,你将不得不更多地处理jalo

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

在第一个Hybris版本中,逻辑通过Jalo(Jakarta Logic)层连接到生成的项目类型类,为了更灵活,Hybris现在正将所有内容移动到更灵活的服务层方法(尚未完成,促销是传统Jalo层的一个很好的例子)。

基于阅读上述答案并根据第一个答案进行练习,我的结论如下:

是的,JALO的非抽象类实现被移动为*Model.java,以编写更具体的业务逻辑,包括前两个答案中的良好解释

干杯