Конфигурация Xml весной

#spring #spring-ws

#spring #spring-ws

Вопрос:

Как получается, что когда я добавляю пространство имен в файл конфигурации spring bean, я могу значительно уменьшить конфигурацию xml?

Например:

 <beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:sws="http://www.springframework.org/schema/web-services"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/web-services

http://www.springframework.org/schema/web-services/web-services-2.0.xsd">


    <sws:annotation-driven />


</beans>
  

этот фрагмент позволяет мне явно не определять payloadrootannotationmethod Endpointmapping

Ответ №1:

Вы указали

 <sws:annotation-driven/>
  

Из документации http://static.springsource.org/spring-ws/site/reference/html/tutorial.html

Используя элемент в нашей конфигурации, мы включаем обнаружение аннотаций @PayloadRoot. Возможно (и довольно распространено) иметь несколько связанных методов обработки в конечной точке, каждый из которых обрабатывает разные XML-сообщения.

По сути, это означает, что вы можете указать аннотацию в вашем файле Java для определения конечной точки —

 @PayloadRoot(namespace = "http://mycompany.com/hr/schemas", localPart = "HolidayRequest")
  

Следовательно, вам больше не нужно указывать конфигурацию в XML.

Ответ №2:

Это «конфигурационные макросы», которые вошли в моду с Spring 2.5. Они сокращают трудоемкость, требуемую при объявлении общих компоновок компонентов, заменяя их макрокомандой. Примеры из Spring включают <context:annotation-driven/> .

В вашем примере <sws:annotation-driven/> заменяет набор компонентов отображения конечной точки Spring WS и обработчика, которые в противном случае вам пришлось бы объявлять явно.

Обратите внимание, что простое объявление пространства имен XML само по себе ничего не делает, это <sws:annotation-driven/> то, что выполняет работу.

Ответ №3:

Когда

<sws: управляемый аннотациями />

обнаруживается в конфигурации, фреймворк автоматически регистрирует множество компонентов фреймворка для обнаружения сопоставлений конечных точек, для выполнения функций получателя сообщений и т.д. Фабрика сообщений, приемник сообщений и т.д. регистрируются автоматически. По сути, это сокращенный вариант для более простых случаев, когда нам просто нужны значения по умолчанию для всех этих компонентов.