【问题标题】:Why there are two separate xml files - <extension>-beans.xml & <extension>-spring.xml in Hybris?为什么在 Hybris 中有两个单独的 xml 文件 - <extension>-beans.xml & <extension>-spring.xml?
【发布时间】:2023-03-05 22:24:02
【问题描述】:

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

&lt;extension&gt;-beans.xml 文件包含 bean 及其属性的定义,也就是 DTO。

&lt;extension&gt;-spring.xml 还包含一些 bean 及其属性的定义。

这是我目前所理解的。如果我错了,请纠正我。

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

请对此进行澄清。 谢谢。

【问题讨论】:

  • 您正在使用spring 的哪个版本
  • 它是 3.1,Hybris 版本是 5.7.x。
  • 来自我在第一条评论中提供的链接:Spring 2.0 新的基于 XML 模式的配置解决了这个问题。 元素仍然存在,如果您愿意,您可以继续编写完全相同样式的 Spring XML 配置,仅使用 元素。
  • 完全随心所欲,目前的方向是根本不使用XML配置。

标签: java hybris


【解决方案1】:

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

&lt;extension&gt;-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。

&lt;extension&gt;-spring.xml-

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

&lt;bean id="defaultProductService" class="de.com.test.DefaultProductService"/&gt;

【讨论】:

  • 你能告诉我在哪里可以找到文件 -spring.xml?
  • -spring.xml 和 -beans.xml 都在扩展的资源文件夹中
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-08-08
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 2014-03-14
    • 2010-12-17
    • 2021-07-28
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多