我想将一个Web项目更新为Spring Boot 1.4,但是却出现错误。
我目前正在使用Spring Boot 1.3.3,并且正在扩展WebMvcAutoConfigurationAdapter
来映射一些自定义资源处理程序:
@Configuration
public class MvcConfiguration extends WebMvcAutoConfigurationAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/images/users/**").addResourceLocations("http://file-storage/images/users/");
// ...
}
我注意到在SB的新版本中,向
WebMvcAutoConfigurationAdapter
添加了一个构造函数:public WebMvcAutoConfigurationAdapter(ResourceProperties resourceProperties,
WebMvcProperties mvcProperties, ListableBeanFactory beanFactory,
HttpMessageConverters messageConverters,
ObjectProvider<ResourceHandlerRegistrationCustomizer> resourceHandlerRegistrationCustomizerProvider) {}
并且此构造函数使用的
ResourceHandlerRegistrationCustomizer
是受程序包保护的接口(interface),因此从1.4版开始,基本上不可能扩展自动配置。扩展自动配置的另一种方法是什么?
最佳答案
无需扩展WebMvcAutoConfigurationAdapter
即可添加一些自定义资源处理程序(而且从未如此)。您应该改为扩展Spring MVC的 WebMvcConfigurerAdapter
。