Package org.springframework.web.servlet.config.annotation

# Annotation Interface EnableWebMvc

@Retention(RUNTIME) @Target(TYPE) @Documented @Import(DelegatingWebMvcConfiguration.class) public @interface EnableWebMvc
Adding this annotation to an `@Configuration` class imports the Spring MVC configuration from `WebMvcConfigurationSupport`, for example:

     @Configuration
     @EnableWebMvc
     @ComponentScan(basePackageClasses = MyConfiguration.class)
     public class MyConfiguration {
     }

To customize the imported configuration, implement the interface `WebMvcConfigurer` and override individual methods, for example:

     @Configuration
     @EnableWebMvc
     @ComponentScan(basePackageClasses = MyConfiguration.class)
     public class MyConfiguration implements WebMvcConfigurer {

         @Override
         public void addFormatters(FormatterRegistry formatterRegistry) {
             formatterRegistry.addConverter(new MyConverter());
         }

         @Override
         public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
             converters.add(new MyHttpMessageConverter());
         }

     }

Note: only one `@Configuration` class may have the `@EnableWebMvc` annotation to import the Spring Web MVC configuration. There can however be multiple `@Configuration` classes implementing `WebMvcConfigurer` in order to customize the provided configuration.

If `WebMvcConfigurer` does not expose some more advanced setting that needs to be configured, consider removing the `@EnableWebMvc` annotation and extending directly from `WebMvcConfigurationSupport` or `DelegatingWebMvcConfiguration`, for example:

     @Configuration
     @ComponentScan(basePackageClasses = { MyConfiguration.class })
     public class MyConfiguration extends WebMvcConfigurationSupport {

         @Override
         public void addFormatters(FormatterRegistry formatterRegistry) {
             formatterRegistry.addConverter(new MyConverter());
         }

         @Bean
         public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
             // Create or delegate to "super" to create and
             // customize properties of RequestMappingHandlerAdapter
         }
     }

Since:
  3.1
Author:
  Dave Syer, Rossen Stoyanchev
See Also:
  - `WebMvcConfigurer`
  - `WebMvcConfigurationSupport`
  - `DelegatingWebMvcConfiguration`