无法在Spring Boot 1.4中扩展WebMvcAutoConfigurationAdapter

dav*_*ooh 9 java spring spring-mvc spring-boot

我想将一个Web项目更新到Spring Boot 1.4,但是我收到了错误.

我目前正在使用Spring Boot 1.3.3,我正在扩展WebMvcAutoConfigurationAdapter以映射一些自定义资源hanlders:

@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/");
        // ...

}
Run Code Online (Sandbox Code Playgroud)

我注意到在新版本的SB中,构造函数被添加到WebMvcAutoConfigurationAdapter:

public WebMvcAutoConfigurationAdapter(ResourceProperties resourceProperties,
        WebMvcProperties mvcProperties, ListableBeanFactory beanFactory,
        HttpMessageConverters messageConverters,
        ObjectProvider<ResourceHandlerRegistrationCustomizer> resourceHandlerRegistrationCustomizerProvider) {} 
Run Code Online (Sandbox Code Playgroud)

并且此构造函数使用的ResourceHandlerRegistrationCustomizer是受包保护的接口,因此,基本上,从版本1.4开始,无法扩展自动配置.

什么是扩展自动配置的替代方法?

And*_*son 14

没有必要扩展WebMvcAutoConfigurationAdapter添加一些自定义资源处理程序(从来没有).你应该扩展Spring MVC WebMvcConfigurerAdapter.