Файлы данного типа определяют конфигурацию дополнительного контейнера Spring Framework для блока Middleware, который предназначен для экспорта сервисов и других компонентов среднего слоя, доступных клиентскому уровню (далее контейнер удаленного доступа).
Набор файлов remoting-spring.xml
, включая определенные в базовых проектах, задается в свойстве приложения
cuba.remotingSpringContextConfig
. Последовательность перечисления файлов важна, так как каждый последующий файл может переопределять конфигурацию бинов, заданную
в предыдущих файлах.
Контейнер удаленного доступа создается таким образом, что основной контейнер (конфигурируемый файлами
spring.xml
) является родительским по отношению к нему. Это означает, что бины контейнера удаленного доступа могут обращаться к бинам
основного контейнера, а бины основного контейнера "не видят" контейнер удаленного доступа.
Основная задача контейнера удаленного доступа - сделать сервисы Middleware доступными клиентскому уровню с помощью механизма Spring HttpInvoker. Для этого в cuba-remoting-spring.xml
базового проекта cuba определяется бин servicesExporter
типа RemoteServicesBeanCreator
, который получает из основного контейнера все классы сервисов и экспортирует их. В дополнение к обычным аннотированным сервисам
контейнер удаленного доступа экспортирует некоторые специфические бины, такие как LoginService
.
Кроме того, cuba-remoting-spring.xml
определяет базовый пакет, начиная с которого производится поиск аннотированных классов контроллеров Spring MVC, используемых для загрузки-выгрузки файлов.
В прикладном проекте определять файл типа remoting-spring.xml
необходимо только в том случае, если создаются специфические контроллеры Spring MVC. Сервисы прикладного проекта в любом случае будут импортированы стандартным бином servicesExporter
, определенным в базовом проекте cuba.