为什么在 Hybris 中有两个单独的 xml 文件 - <extension>-beans.xml & <extension>-spring.xml?

Why there are two separate xml files - <extension>-beans.xml & <extension>-spring.xml in Hybris?

我是 Hybris 的新手,对其中的扩展结构不太了解。 每当我们创建任何扩展时,它都包含两个 XML 文件: -beans.xml 和 -spring.xml

<extension>-beans.xml 文件包含 bean 及其属性的定义,或者换句话说,DTO。

<extension>-spring.xml 还包含一些 bean 及其属性的定义。

这是我目前所理解的。如有不妥请指正

当我们可以在 spring.xml 中定义 bean 时,为什么还需要另一个 XML 文件“beans.xml”?

请就此提供一些说明。 谢谢。

通常,Hybris 中的 *beans.xml 文件用于表示数据模型(如上文所述)。这些文件由平台读取,并由此自动生成 DTO。

在 *spring.xml 文件中声明的 Bean 不是自动生成的。

https://wiki.hybris.com/display/release5/Generating+Beans+and+Enums 有更多关于此的信息。

正如我们所知,Hybris 遵循分层架构,我们以模型的形式从持久层(数据库)获取数据,并将结果以 DTO(数据传输对象)的形式发送到表示层。

<extension>-beans.xml -

我们以声明方式创建数据对象,例如 在用作代码生成输入的 xml 文件中定义 bean 和枚举。 主要优点是您可以合并多个扩展的属性

简而言之,为了创建 DTO,我们使用 -beans.xml,然后在控制器中使用它来在 jsp 中显示结果。

<bean class="de.hybris.platform.test.data.CustomerData">
    <description>Data object representing CustomerData</description>
    <property name="name" type="String"/>
    <property name="email" type="String"/>
    <property name="phone" type="String" />
</bean>

Converter/Populators 用于填充 DTO。

<extension>-spring.xml -

此文件用于定义您的 class bean(如外观、服务、dao、策略等)。

<bean id="defaultProductService" class="de.com.test.DefaultProductService"/>