Почему в Hybris есть два отдельных xml-файла — «расширение»-beans.xml и «расширение»-spring.xml?

Я новичок в Hybris и немного смущен структурой расширения в нем. Всякий раз, когда мы создаем какое-либо расширение, оно содержит два XML-файла: -beans.xml и -spring.xml.

<extension>-beans.xml содержит определение bean-компонентов и их атрибутов или, другими словами, DTO.

<extension>-spring.xml также содержит определение некоторых bean-компонентов и их атрибутов.

Это то, что я понял до сих пор. Пожалуйста, поправьте меня, если я ошибаюсь.

Когда мы можем определить bean-компоненты в spring.xml, зачем нужен еще один XML-файл "beans.xml"?

Пожалуйста, дайте некоторые пояснения по этому поводу. Спасибо.


person AppleBud    schedule 09.06.2016    source источник
comment
Какая версия spring с которым вы работаете?   -  person Elliott Frisch    schedule 09.06.2016
comment
это 3.1, а версия Hybris — 5.7.x.   -  person AppleBud    schedule 09.06.2016
comment
Из ссылки, которую я предоставил в своем первом комментарии: Новая конфигурация Spring 2.0 на основе XML-схемы решает эту проблему. Элемент ‹bean/› по-прежнему присутствует, и если вы захотите, вы можете продолжить писать точно такой же стиль конфигурации Spring XML, используя только элементы ‹bean/›.   -  person Elliott Frisch    schedule 09.06.2016
comment
Это совершенно произвольно, и нынешнее направление состоит в том, чтобы вообще не использовать конфигурацию XML.   -  person chrylis -cautiouslyoptimistic-    schedule 09.06.2016


Ответы (2)


Как мы знаем, Hybris следует многоуровневой архитектуре, в которой мы извлекаем данные из уровня сохранения (базы данных) в форме модели и отправляем результат на уровень представления в форме DTO (объект передачи данных).

<extension>-beans.xml -

Мы создаем объекты данных декларативным способом, например, для определения bean-компонентов и перечислений в XML-файле, используемом в качестве входных данных для генерации кода. Основное преимущество заключается в том, что вы можете объединять атрибуты нескольких расширений.

Короче говоря, для создания 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>

Преобразователи/заполнители используются для заполнения DTO.

<extension>-spring.xml -

Этот файл используется для определения bean-компонентов вашего класса (таких как фасад, сервис, дао, стратегия и т. д.).

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

person Free-Minded    schedule 09.06.2016
comment
Не могли бы вы сказать, где я могу найти файл ‹extension›-spring.xml? - person Sushivam; 18.10.2016
comment
‹extension›-spring.xml и ‹extension›-beans.xml находятся в папке ресурсов расширения. - person N. berouain; 04.10.2017

Обычно файлы *beans.xml в Hybris используются для представления модели данных (как было упомянуто выше). Эти файлы считываются платформой, и из них автоматически генерируются DTO.

Компоненты, объявленные в файле *spring.xml, не генерируются автоматически.

https://wiki.hybris.com/display/release5/Generating+Beans+and+Enums содержит дополнительную информацию об этом.

person Mike Palfrey    schedule 09.06.2016