質問

私は春2.5から春3に移動しています。

彼らは紹介しました <mvc:annotation-driven /> ブラックマジックがあります。これは、サーブレット構成ファイルのみで宣言されると予想されます。

春2.5で使用したばかりです <context:annotation-config /><context:component-scan base='...'/> タグは両方で宣言されました application-context.xml スキャンする適切なベースパッケージを備えたディスパッチャーサーブレット構成XML。

だから私は何の違いがあるのだろうか mvc:annotation-drivencontext:annotation-config サーブレット構成のタグと、春3の構成ファイルで何を排除できますか?

役に立ちましたか?

解決

<context:annotation-config> 次のような一般的な注釈に対するサポートを宣言します @Required, @Autowired, @PostConstruct, 、 等々。

<mvc:annotation-driven /> 注釈駆動型MVCコントローラーの明示的なサポートを宣言します(つまり、 @RequestMapping, @Controller, 、それらのサポートはデフォルトの動作ですが)と、宣言的検証のサポートを追加する @Valid とメッセージボディがマーシャリングします @RequestBody/ResponseBody.

他のヒント

の使用に関する詳細もあります <mvc:annotation-driven /> の中に 春のドキュメント. 。一言で言えば、 <mvc:annotation-driven /> Spring MVCの内側の仕組みをより強く制御できます。ドキュメントの前述のセクションで概説されている機能の1つ以上が必要な場合を除き、使用する必要はありません。

また、他のスプリングモジュールで追加の機能を提供するために利用可能な他の「注釈駆動型」タグがあります。例えば、 <transaction:annotation-driven /> @transactionアノテーションの使用を有効にし、 <task:annotation-driven /> @scheduled et alに必要です...

MVC:注釈駆動型 スプリング3.0に追加されたタグは、次のことを行います。

  1. Spring 3 Type ConversionService(PropertyEditorsの代替)を構成します
  2. @NumberFormatを使用して数字フィールドのフォーマットのサポートを追加します
  3. Joda TimeがClassPathにある場合、@DatetimeFormatを使用して、フォーマット日、カレンダー、およびJODAタイムフィールドのサポートを追加します
  4. JSR-303プロバイダーがClassPathにある場合、@Validで@Controller入力を検証するためのサポートを追加します
  5. jaxbがclasspathにある場合、XMLの読み書きのサポートを追加します( @requestbody/ @responsebodyとのhttpメッセージ変換)
  6. JacksonがClassPathにいる場合、Jsonを読み書きするためのサポートを追加します(#5と同じ行に沿って)

コンテキスト:Annotation-Config同じアプリケーションのコンテキストで豆の注釈を探して、 @autowired、 @resource、 @required、@postconstructなどのすべての一般的な注釈のサポートを宣言します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top