WebMvcConfigurationSupport

WebMvcConfigurationSupport

我想在Windows中使用WebMvcConfigurerAdapter添加资源处理程序,但是在Linux中它不起作用,因此我添加了WebMvcConfigurationSupport

经过调试和测试后,我发现两个OS都将创建两个bean,但是WebMvcConfigurerAdapter的替代功能仅在Windows上执行,而WebMvcConfigurationSupport的替代功能仅在Linux上执行。

我找不到原因。这两个配置类如下所示:

@Configuration
public class JxWebAppConfigurer  extends WebMvcConfigurerAdapter {
   @Override
   public void addResourceHandlers(ResourceHandlerRegistry registry) {
     registry.addResourceHandler("/**").addResourceLocations("file:"+System.getProperty("user.dir")+"/src/main/webapp/");
     super.addResourceHandlers(registry);
   }
}

这是另一个:
@Configuration
public class JxWebConfiguration extends WebMvcConfigurationSupport {
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
       registry.addResourceHandler("/**").addResourceLocations("file:"+System.getProperty("user.dir")+"/src/main/webapp/");
       super.addResourceHandlers(registry);
   }
}

@EnalbeMvc已在主类中添加

最佳答案

in the @EnableWebMvc Documentation所述:

将此注释添加到@Configuration类将导入Spring
来自WebMvcConfigurationSupport的MVC配置

{..}

要自定义导入的配置,请实现接口
WebMvcConfigurer或更可能扩展空方法基类
WebMvcConfigurerAdapter并覆盖单个方法

{..}

如果WebMvcConfigurer没有公开一些需要的高级设置
要配置,请考虑删除@EnableWebMvc批注和
直接从WebMvcConfigurationSupport扩展

因此实际上是:

  • @EnableWebMvc +扩展WebMvcConfigurerAdapter(建议的第一个选项)
  • 直接从WebMvcConfigurationSupport扩展(完全控制的备用替代)

  • (在两种情况下都需要@Configuration)

    09-09 18:07