EnableWebMvc注释的含义

我阅读关于@EnableWebMvc javadoc。

但是我不明白这个注解是什么意思?

你能清楚地说清楚吗?

当您使用Java代码(而不是XML)来configurationSpring应用程序时,使用@EnableWebMvc来启用Spring MVC。 如果您还不熟悉Spring对Javaconfiguration的支持,那么这是一个很好的开始 。

@EnableWebMvc相当于XML中的<mvc:annotation-driven /> 。 它支持@Controller支持使用@RequestMapping @Controller类将传入的请求映射到某个特定的方法。 您可以阅读有关默认configuration的详细信息,以及如何在参考文档中自定义configuration。

欢迎来到spring的世界。 在知道@EnableWebMVC注释的@EnableWebMVC之前,您需要了解一些内容。

spring传统上支持两种types的configuration:

  • 基于XML的configuration
  • 基于注释的configuration

这些注释本质上是作为MVC Javaconfigurationdevise的一部分来实现的。

考虑一个简单的类:

 @EnableWebMvc @Configuration public class WebConfig { } 

没有基类。 没有春豆在眼前..嗯..

让我们进一步:

  • 这实际上提供了什么?

好吧,让你多一点点,它提供了很多东西,如:

  1. @MVC请求处理
  2. 全球JSR-303validation器

还有一些。

啊哈哈…但是你的应用程序正确的工作。 那么,魔法在哪里?

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

这是背后的原因:

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

看,现在你会认为使用@EnableWebMVC是多么毫无意义。 你会宁愿:

  • 扩展WebMvcConfigurationSupport
  • 覆盖@Bean和其他可用的方法

你可以阅读:

  • Javareflection:注释

希望能帮助到你。 🙂