web-dev-qa-db-ja.com

EnableWebMvcアノテーションの意味

@EnableWebMvcに関するjavadocを読みました。

しかし、この注釈の意味がわかりませんか?

あなたはそれをはっきりと証明できますか?

67
user2740224

Springアプリケーションを構成するために(XMLではなく)Javaコードを使用している場合、Spring MVCを有効にするために@EnableWebMvcが使用されます。 Java構成に対するSpringのサポートにまだ慣れていない場合は、 開始するのに適した場所です

@EnableWebMvcは、XMLの<mvc:annotation-driven />と同等です。 @Controllerを使用して着信リクエストを特定のメソッドにマッピングする@RequestMappingアノテーション付きクラスのサポートを有効にします。 リファレンスドキュメント で、デフォルトで何が設定されているか、設定をカスタマイズする方法に関する詳細情報を読むことができます。

93
Andy Wilkinson

春の世界へようこそ。注釈@EnableWebMVCの意味を理解する前に、理解する必要があることがあります。

Springは従来、2種類の構成をサポートしています。

これらの注釈は、本質的にMVC Java Config Designの一部として実装されます。

簡単なクラスを考えてみましょう:

@EnableWebMvc
@Configuration
public class WebConfig {
}

基本クラスはありません。春豆は見えません。

さらに進んでみましょう:

  • これは実際に何を提供しますか?。

まあ、もう少しあなたを退屈させるために、それは次のような多くのものを提供します:

  1. @ MVC要求処理
  2. グローバルJSR-303バリデーター

さらにいくつか。

Ahahah ...しかし、アプリケーションは正しく動作します。それで、魔法はどこにありますか?

@EnableWebMVC <---- What's behind this..?

これは背後にあります:

@Retention(RetentionPolicy.RUNTIME)
@Import(DelegatingWebMvcConfiguration.class)
@Target(ElementType.TYPE)
public @interface EnableWebMvc {
}

@EnableWebMVCを使用することで、どのように無意味であると思うでしょう。むしろあなたは:

以下で読むことができます:

それが役に立てば幸い。 :)

44
user2339071

この注釈を@Configurationクラスに追加すると、WebMvcConfigurationSupportからSpring MVC構成がインポートされます

1
Mahibub Nadaf