SpringMVC-@EnableWebMvc

SpringMVC-@EnableWebMvc

在之前的学习中,使用@EnableWebMvc注解修饰mvc的配置类后,就可以让handlerAdapter拥有处理Json的能力

其实这个注解做的远远不止这些

这个注解在早期使用xml配置的时候对应的是<mvc:annotation-driven>标签

这个标签使用AnnotationDrivenBeanDefinitionParser()类进行一系列操作

1
2
3
4
5
6
7
RootBeanDefinition handlerMappingDef = new RootBeanDefinition(RequestMappingHandlerMapping.class);

RootBeanDefinition handlerAdapterDef = new RootBeanDefinition(RequestMappingHandlerAdapter.class);

// 加JSON处理器
this.addRequestBodyAdvice(handlerAdapterDef);
this.addResponseBodyAdvice(handlerAdapterDef);

从这个源码我们可以了解到,@EnableWebMvc三个关键的行为:

  • 初始化RequestMappingHandlerMapping
  • 初始化RequestMappingHandlerAdapter
  • 将Jackson添加到handlerAdapter中

MvcConfig

综上所述,我们在mvc的配置文件中无需自己配置HandlerMapping和HandlerAdapter

1
2
3
4
5
@EnableWebMvc
@Configuration
@ComponentScan("com.xiaobai.controller")
public class MVCConfig {
}


SpringMVC-@EnableWebMvc
http://blog.170827.xyz/2024/06/26/SpringMVC-@EnableWebMvc/
作者
XIAOBAI
发布于
2024年6月26日
许可协议