WebMvcConfigurerAdapterの古いリソースと静的リソースが無効です

1213 ワード

Springboot 2.0(Spring 5)後にWebMvcConfigurerAdapterを独自のコンフィギュレーションクラスで継承すると、ideaはこのクラスが時代遅れになったことを示す.ネット上ではWebMvcConfigurationSupportを使用して代替すると多くの説があるが、WebMvcConfigurationSupportを使用するとSpringbootのwebmvcコンフィギュレーションが失効し、静的リソースにアクセスできない.これはWebMvcの自動構成がWebMvcAutoConfigurationクラスにあるためですが、クラスにはこの注記@C o n d i tionalOnMissingBean({WebMvcConfigurationSupport.class})があり、コンテナでWebMvcConfigurationSupportというクラスが検出されると、WebMvcAutoConfigurationクラスの構成が有効にならないことを意味します.コードは以下の通りです.
@Configuration
@ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class,
		ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration {
    
}

したがってSpringmvcを正しく引き継ぐ方法は以下の通りであるべきである.
@Configuration
public class MyMvcConfig  implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("login");
    }
}