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クラスの構成が有効にならないことを意味します.コードは以下の通りです.
したがってSpringmvcを正しく引き継ぐ方法は以下の通りであるべきである.
@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");
}
}