EnableWebMvc annotation meaning

JavaSpringSpring MvcAnnotations

Java Problem Overview


I read javadoc about @EnableWebMvc.

But I don't understand what this annotation mean?

Can you expalin it clearly?

Java Solutions


Solution 1 - Java

When you're using Java code (as opposed to XML) to configure your Spring application, @EnableWebMvc is used to enable Spring MVC. If you're not already familiar with Spring's support for Java configuration, this is a good place to start.

@EnableWebMvc is equivalent to <mvc:annotation-driven /> in XML. It enables support for @Controller-annotated classes that use @RequestMapping to map incoming requests to a certain method. You can read detailed information about what it configures by default and how to customise the configuration in the reference documentation.

Solution 2 - Java

Welcome to the world of Spring. There is something you need to understand before you know what the annotation @EnableWebMVC means.

Spring traditionally supports two types of configurations:

These annotations are essentially implemented as a part of MVC Java Config Design.

Consider a simple class:

@EnableWebMvc
@Configuration
public class WebConfig {
}

There are no base classes. No spring beans in sight.. Hmmm..

Lets go a little further:

  • What does this actually provide.. ?

Well, to bore you a little bit more ,it provides a lot a things like:

  1. @MVC request processing
  2. Global JSR-303 validator

and a few more.

Ahahah... But your application works with it right. So, where's the magic.. ?

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

This is behind it:

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

See, now you would think that how pointless using @EnableWebMVC. Would you rather:

You can read up on:

Hope it helps. :)

Solution 3 - Java

When we want to build a Spring Web MVC project we need to add necessary import from WebMvcConfigurationSupport.For that reason, we should use @EnableWebMvc in java based configuration. Only one @Configuration class may have @EnableWebMvc.

Solution 4 - Java

Adding this annotation to an @Configuration class imports the Spring MVC configuration from WebMvcConfigurationSupport

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser2740224View Question on Stackoverflow
Solution 1 - JavaAndy WilkinsonView Answer on Stackoverflow
Solution 2 - Javauser2339071View Answer on Stackoverflow
Solution 3 - JavaLokman HossainView Answer on Stackoverflow
Solution 4 - JavaMahibub NadafView Answer on Stackoverflow