EnableWebMvc注释的含义


76

我阅读了有关的Javadoc @EnableWebMvc

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

你能清楚说明一下吗?

Answers:


100

当您使用Java代码(而不是XML)配置Spring应用程序时,@EnableWebMvc用于启用Spring MVC。如果您还不熟悉Spring对Java配置的支持,那么这是一个不错的起点

@EnableWebMvc等效<mvc:annotation-driven />于XML。它支持对带@Controller注释的类的支持,该类@RequestMapping用于将传入的请求映射到某个方法。您可以在参考文档中阅读有关其默认配置以及如何自定义配置的详细信息。


1
什么是mvc:annotation-driven?
Koray Tugay 2015年

“它启用对@Controller注释类的支持”,这是不正确的。摘自Spring文档,To enable auto-detection of such @Controller beans, you can add component scanning
Rich Rich

它是正确的。没有@EnableWebMvc@Controllerbean只是一个bean,而不是控制器。无论是通过组件扫描找到还是通过@Bean方法注册,都适用。
安迪·威尔金森

49

欢迎来到春天的世界。在了解注释的@EnableWebMVC含义之前,需要了解一些内容。

传统上,Spring支持两种类型的配置:

这些注释实质上是作为MVC Java Config Design的一部分实现的。

考虑一个简单的类:

@EnableWebMvc
@Configuration
public class WebConfig {
}

没有基类。看不见春豆..嗯。

让我们更进一步:

  • 这实际上提供了什么?

好吧,这会让您烦恼不已,它提供了很多类似功能:

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

还有一些。

啊...但是您的应用程序可以正常使用。那么,魔术在哪里。

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

其背后是:

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

瞧,现在您会认为使用毫无意义@EnableWebMVC。你会宁愿:

您可以阅读以下内容:

希望能帮助到你。:)


1

将此注释添加到@Configuration类中,即可从WebMvcConfigurationSupport导入Spring MVC配置。


1

当我们想构建一个Spring Web MVC项目时,我们需要从中添加必要的导入WebMvcConfigurationSupport。因此,我们应该@EnableWebMvc在基于Java的配置中使用。只有一@Configuration堂课@EnableWebMvc

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.