@EnableWebMvc介绍和使用详细demo

@EnableWebMvc是什么

@EnableWebMvcSpring MVC 中的一个注解,它用于启用 Spring MVC 框架的基本功能,以便你可以使用 Spring MVC 提供的特性来处理 Web 请求。

通常情况下,在基于 Spring Boot 的应用中,并不需要显式地使用 @EnableWebMvc,因为 Spring Boot 已经默认自动配置了 Spring MVC。但是,如果你想要自定义 Spring MVC 的配置,或者禁用 Spring Boot 对 Spring MVC 的自动配置,那么你就需要显式地使用 @EnableWebMvc。

使用示例

下面是一个简单的使用 @EnableWebMvc 的示例:

java 复制代码
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {

    // 配置静态资源处理
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
    // 配置视图解析器
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/views/", ".jsp");
    }
    // 其他自定义的 Spring MVC 配置
}

在上面的示例中,@EnableWebMvc 注解被添加到了一个 @Configuration 注解的类上,表示要启用 Spring MVC 框架。在这个类中,你可以添加自定义的 Spring MVC 配置,例如添加拦截器、视图解析器、消息转换器等。

需要注意的是,使用 @EnableWebMvc 会完全覆盖 Spring Boot 对 Spring MVC 的自动配置,因此如果你使用了 @EnableWebMvc,就需要自己配置 Spring MVC 的全部内容,包括视图解析器、资源处理、异常处理等。通常情况下,只有在需要非常精细的控制 Spring MVC 配置时才会使用 @EnableWebMvc。

总结:

使用@EnableWebMvc注解,可以开启Spring MVC 框架的基本功能,你可以使用 Spring MVC 提供的特性来处理 Web 请求,同时会完全覆盖 Spring Boot 对 Spring MVC 的自动默认配置。

相关推荐
天上掉下来个程小白11 小时前
Redis-04.Redis常用命令-字符串常用命令
java·数据库·redis·springboot·苍穹外卖
西岭千秋雪_18 小时前
Spring Boot自动配置原理解析
java·spring boot·后端·spring·springboot
刀法如飞20 小时前
Go语言架构实践:从 MVC 到 DDD 的演进之路
go·mvc·领域驱动设计
天上掉下来个程小白20 小时前
Redis-06.Redis常用命令-列表操作命令
java·redis·后端·springboot·苍穹外卖
菲兹园长1 天前
Spring Web MVC(Spring MVC)
前端·spring·mvc
刀法如飞1 天前
Go后端架构探索:从 MVC 到 DDD 的演进之路
架构·go·mvc
2401_884810741 天前
Spring-MVC笔记(下)
笔记·spring·mvc
shangxianjiao2 天前
Javaweb后端登录认证 登录校验 过滤器 filter令牌校验,执行流程,拦截路径
java·springboot·springcloud·过滤器
外面要下雨2 天前
来和大家聊个有意思的事情:在接口上标注@Component和@Controller有什么区别?
后端·spring·mvc
奔跑吧邓邓子2 天前
【商城实战(92)】高并发下的商城缓存进阶:从原理到实战
redis·缓存·springboot·uniapp·element plus·商城实战