spring 使用@EnableWebMvc + WebMvcConfigurer和使用WebMvcConfigurer有什么区别?

dxxyhpgq  于 2023-02-07  发布在  Spring
关注(0)|答案(1)|浏览(131)

使用@EnableWebMvc + WebMvcConfigurer和使用WebMvcConfigurer有什么区别?

@Configuration
@EnableWebMvc
class WebMvcConfig(): WebMvcConfigurer {}
@Configuration
class WebMvcConfig(): WebMvcConfigurer {}
7eumitmz

7eumitmz1#

@Configuration
class WebMvcConfig(): WebMvcConfigurer {}

这只在使用@EnableWebMvc时才有效。WebMvcConfigurer示例由通过@EnableWebMvc注册的DelegatingWebMvcConfiguration示例检测。因此,要使其工作,您需要@EnableWebMvc

**注意:**使用Sping Boot 时,当Spring Boot在类路径上检测到Spring MVC类时,将自动执行此操作!

没有@EnableWebMvcWebMvcConfigurer除了占用内存外什么也不做。当不使用@EnableWebMvc时,DispatcherServlet将安装一些默认值。这些默认值硬编码在DispatcherServlet.properties文件中。如果不使用@EnableWebMvc,这些默认值很难修改。

**警告:**当使用Sping Boot 并添加@EnableWebMvc时,实际上会禁用Spring Boot完成的MVC自动配置的很大一部分,这可能会导致其他意外!

相关问题