2011-05-11 2 views
2

스프링 빈 구성 파일에 네임 스페이스를 추가하면 XML 구성을 상당히 줄일 수 있습니까? 예를 들어스프링의 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> 

이 조각 날 당신은 문서에서

<sws:annotation-driven/> 

를 지정

답변

3

명시 적으로 PayloadRootAnnotationMethodEndpointMapping 정의 할 수 있습니다 http://static.springsource.org/spring-ws/site/reference/html/tutorial.html-

구성에서 요소를 사용하면 은 @PayloadRoot 주석 을 감지 할 수 있습니다. 여러 개의 관련 처리 방법을 끝점에두고 각각이 다른 XML 메시지를 처리하는 것이 가능하고 (매우 일반적인) 입니다.

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

은 그러므로 당신이 더 이상 XML의 구성을 지정해야합니다 -

그것은 기본적으로 엔드 포인트를 정의하는 자바 파일에 주석을 지정할 수 있다는 것을 의미한다.

2

이들은 Spring 2.5에서 유행 한 "구성 매크로"입니다. 그들은 콩의 일반적인 배열을 선언 할 때 필요한 당나귀 작업을 줄여 매크로로 대체합니다. 봄에서의 예에는 <context:annotation-driven/>이 포함됩니다.

예제에서, <sws:annotation-driven/>은 Spring WS 엔드 포인트 매핑 및 핸들러 빈을 대체합니다. 그렇지 않으면 명시 적으로 선언해야합니다.

단순히 XML 네임 스페이스를 선언해도 그 자체로 아무 것도하지 않는다는 점에 유의하십시오. 이는 작업을 수행하는 <sws:annotation-driven/>입니다.

0

 
<sws:annotation-driven /> 

이 구성에서 검출 될 때, 프레임 워크 단부 등 등 메시지 수신자 메시지 공장, 메시지 수신기로서 작용하는, 맵핑을 가리키는 검출하는 워크 콩의 회전을 자동 - 레지스터 모두 자동 등록됩니다. 이는 기본적으로 이러한 모든 bean에 대한 기본값을 원할 경우보다 직선적 인 경우에 대한 지름길입니다.