SpringMVC-@EnableWebMvc

SpringMVC-@EnableWebMvc

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

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

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

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

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

@EnableWebMvc
@Configuration
@ComponentScan("com.xiaobai.controller")
public class MVCConfig {
}