と in servletの違いは何ですか?
-
09-10-2019 - |
質問
私は春2.5から春3に移動しています。
彼らは紹介しました <mvc:annotation-driven />
ブラックマジックがあります。これは、サーブレット構成ファイルのみで宣言されると予想されます。
春2.5で使用したばかりです <context:annotation-config />
と <context:component-scan base='...'/>
タグは両方で宣言されました application-context.xml
スキャンする適切なベースパッケージを備えたディスパッチャーサーブレット構成XML。
だから私は何の違いがあるのだろうか mvc:annotation-driven
と context: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に追加されたタグは、次のことを行います。
- Spring 3 Type ConversionService(PropertyEditorsの代替)を構成します
- @NumberFormatを使用して数字フィールドのフォーマットのサポートを追加します
- Joda TimeがClassPathにある場合、@DatetimeFormatを使用して、フォーマット日、カレンダー、およびJODAタイムフィールドのサポートを追加します
- JSR-303プロバイダーがClassPathにある場合、@Validで@Controller入力を検証するためのサポートを追加します
- jaxbがclasspathにある場合、XMLの読み書きのサポートを追加します( @requestbody/ @responsebodyとのhttpメッセージ変換)
- JacksonがClassPathにいる場合、Jsonを読み書きするためのサポートを追加します(#5と同じ行に沿って)
コンテキスト:Annotation-Config同じアプリケーションのコンテキストで豆の注釈を探して、 @autowired、 @resource、 @required、@postconstructなどのすべての一般的な注釈のサポートを宣言します。