简体   繁体   中英

EnableWebMvc annotation meaning

I read javadoc about @EnableWebMvc .

But I don't understand what this annotation mean?

Can you expalin it clearly?

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 .

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. :)

将此注释添加到 @Configuration 类会从 WebMvcConfigurationSupport 导入 Spring MVC 配置

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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM