使用@EnableWebMvc + WebMvcConfigurer和使用WebMvcConfigurer有什么区别?
@Configuration @EnableWebMvc class WebMvcConfig(): WebMvcConfigurer {}
@Configuration class WebMvcConfig(): WebMvcConfigurer {}
7eumitmz1#
这只在使用@EnableWebMvc时才有效。WebMvcConfigurer示例由通过@EnableWebMvc注册的DelegatingWebMvcConfiguration示例检测。因此,要使其工作,您需要@EnableWebMvc。
@EnableWebMvc
WebMvcConfigurer
DelegatingWebMvcConfiguration
**注意:**使用Sping Boot 时,当Spring Boot在类路径上检测到Spring MVC类时,将自动执行此操作!
没有@EnableWebMvc,WebMvcConfigurer除了占用内存外什么也不做。当不使用@EnableWebMvc时,DispatcherServlet将安装一些默认值。这些默认值硬编码在DispatcherServlet.properties文件中。如果不使用@EnableWebMvc,这些默认值很难修改。
DispatcherServlet
DispatcherServlet.properties
**警告:**当使用Sping Boot 并添加@EnableWebMvc时,实际上会禁用Spring Boot完成的MVC自动配置的很大一部分,这可能会导致其他意外!
1条答案
按热度按时间7eumitmz1#
这只在使用
@EnableWebMvc
时才有效。WebMvcConfigurer
示例由通过@EnableWebMvc
注册的DelegatingWebMvcConfiguration
示例检测。因此,要使其工作,您需要@EnableWebMvc
。**注意:**使用Sping Boot 时,当Spring Boot在类路径上检测到Spring MVC类时,将自动执行此操作!
没有
@EnableWebMvc
,WebMvcConfigurer
除了占用内存外什么也不做。当不使用@EnableWebMvc
时,DispatcherServlet
将安装一些默认值。这些默认值硬编码在DispatcherServlet.properties
文件中。如果不使用@EnableWebMvc
,这些默认值很难修改。**警告:**当使用Sping Boot 并添加
@EnableWebMvc
时,实际上会禁用Spring Boot完成的MVC自动配置的很大一部分,这可能会导致其他意外!