我阅读了有关 @EnableWebMvc
的 javadoc。
但是我不明白这个注释是什么意思?
你能解释清楚吗?
当您使用 Java 代码(而不是 XML)来配置您的 Spring 应用程序时,@EnableWebMvc
用于启用 Spring MVC。如果您还不熟悉 Spring 对 Java 配置的支持,this is a good place to start。
@EnableWebMvc
相当于 XML 中的 <mvc:annotation-driven />
。它支持使用 @RequestMapping
将传入请求映射到特定方法的 @Controller
注释类。您可以在 reference documentation 中阅读有关其默认配置以及如何自定义配置的详细信息。
欢迎来到春天的世界。在了解注释 @EnableWebMVC
的含义之前,您需要了解一些内容。
Spring 传统上支持两种类型的配置:
基于 XML 的配置
基于注释的配置
这些注解本质上是作为 MVC Java Config Design 的一部分实现的。
考虑一个简单的类:
@EnableWebMvc
@Configuration
public class WebConfig {
}
没有基类。看不到春豆..嗯..
让我们更进一步:
这实际上提供了什么..?
好吧,为了让你更无聊,它提供了很多东西,比如:
@MVC 请求处理全局 JSR-303 验证器
还有一些。
啊哈...但是您的应用程序可以正确使用它。那么,魔法在哪里..?
@EnableWebMVC <---- What's behind this..?
这是它的背后:
@Retention(RetentionPolicy.RUNTIME)
@Import(DelegatingWebMvcConfiguration.class)
@Target(ElementType.TYPE)
public @interface EnableWebMvc {
}
看,现在您会认为使用 @EnableWebMVC
是多么无意义。你会宁愿:
扩展 WebMvcConfigurationSupport
覆盖@Bean 和其他可用方法
你可以阅读:
Java 反射:注解
希望能帮助到你。 :)
当我们要构建 Spring Web MVC 项目时,我们需要从 WebMvcConfigurationSupport
添加必要的导入。因此,我们应该在基于 java 的配置中使用 @EnableWebMvc
。只有一个 @Configuration
类可能有 @EnableWebMvc
。
将此注解添加到 @Configuration 类从 WebMvcConfigurationSupport 导入 Spring MVC 配置
不定期副业成功案例分享
To enable auto-detection of such @Controller beans, you can add component scanning
@EnableWebMvc
,则@Controller
bean 只是一个 bean,而不是控制器。无论是通过组件扫描找到它还是通过@Bean
方法注册,这都适用。@EnableWebMvc
的等效项。除非您想关闭 Boot 关于应如何配置 Spring MVC 的所有意见,否则您不应在应用程序中使用@EnableWebMvc
。