2011-05-11 34 views
2

Spring Bean設定ファイルに名前空間を追加すると、XML設定を大幅に減らすことができますか?例えばSpringの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メッセージを処理することが可能であり、かなり一般的です)、 です。

それは基本的にあなたがエンドポイントを定義するために、あなたのJavaファイルにアノテーションを指定できることを意味しない -

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

したがって、あなたは、もはやXMLで設定を指定する必要があります。

2

これらはSpring 2.5で流行した「設定マクロ」です。彼らは、豆の一般的な手配を宣言し、それらをマクロに置き換えるときに必要なロバの作業を減らす。春からの例には、<context:annotation-driven/>が含まれます。

例では、<sws:annotation-driven/>は、Spring WSエンドポイントマッピングとハンドラBeanの束を置き換えます(明示的に宣言する必要があります)。

XMLネームスペースを宣言するだけでは何も実行されませんが、その作業を行うのは<sws:annotation-driven/>です。

0

 
<sws:annotation-driven /> 

をConfigで検出された場合、フレームワークメッセージ受信機等のメッセージファクトリを作用さ、エンドポイントのマッピングを検出するために、フレームワーク豆のスルーを自動登録し、メッセージ受信などすべて自動的に登録されます。これは、基本的には、これらのすべてのBeanのデフォルトを必要とするより単純なケースのためのショートカットです。

関連する問題