Spring 2.5からSpring 3に移行しています。
彼らはいくつかの黒魔術を行う<mvc:annotation-driven />
を導入しました。これは、サーブレット構成ファイルでのみ宣言されることが期待されています。
Spring 2.5では、<context:annotation-config />
と<context:component-scan base='...'/>
タグを、application-context.xml
とディスパッチャサーブレット構成XMLの両方で、適切なベースパッケージを使用してスキャンするように宣言して使用しました。
だから、サーブレット構成のmvc:annotation-driven
タグとcontext:annotation-config
タグの違いは何で、Spring 3の構成ファイルでは何を削除できるのでしょうか?
<context:annotation-config>
は、@Required
、@Autowired
、@PostConstruct
などの一般的な注釈のサポートを宣言します。
<mvc:annotation-driven />
は、アノテーション駆動型MVCコントローラーの明示的なサポートを宣言します(つまり、@RequestMapping
、@Controller
、これらのサポートはデフォルトの動作ですが)とともに、@Valid
および@RequestBody
/ResponseBody
によるマーシャリングによる宣言検証のサポートを追加します。
Spring docs の<mvc:annotation-driven />
の使用に関する詳細もあります。簡単に言うと、<mvc:annotation-driven />
を使用すると、Spring MVCの内部動作をより細かく制御できます。前述のドキュメントのセクションで説明されている1つ以上の機能が必要でない限り、使用する必要はありません。
また、他のSpringモジュールに追加機能を提供するために利用可能な他の「注釈駆動型」タグがあります。たとえば、<transaction:annotation-driven />
は@Transactionアノテーションの使用を有効にし、@ Scheduledなどには<task:annotation-driven />
が必要です。
mvc:annotation-drivenは、Spring 3.0で追加されたタグで、次のことを行います。
context:annotation-config定義されている同じアプリケーションコンテキストでBeanの注釈を探し、@ Autowired、@ Resource、@ Required、@ PostConstructなどのすべての一般的な注釈のサポートを宣言します。