我想在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
)