Конфигурация XML весной - PullRequest
2 голосов
/ 11 мая 2011

Как получается, что когда я добавляю пространство имен в файл конфигурации 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>

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

Ответы [ 3 ]

3 голосов
/ 11 мая 2011

Вы указали

<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 голосов
/ 11 мая 2011

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

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

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

0 голосов
/ 12 мая 2011

Когда в конфигурации обнаруживается

<sws:annotation-driven />

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

...