springboot添加WebMvcConfig配置类继承WebMvcConfigurationSupport导致静态资源无法访问
springboot添加WebMvcConfig配置类继承WebMvcConfigurationSupport导致静态资源无法访问
·
本来项目正常的访问,当添加配置类WebMvcConfig配置类继承WebMvcConfigurationSupport导致静态资源无法访问,静态页面报404错误,
原因:继承WebMvcConfigurationSupport会发现Spring Boot的WebMvc自动配置失效(WebMvcAutoConfiguration自动化配置),导致无法视图解析器无法解析并返回到对应的视图,因此需要重新配置静态资源访问路径,在配置类添加如下代码:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/resources/")
.addResourceLocations("classpath:/static/")
.addResourceLocations("classpath:/public/");
super.addResourceHandlers(registry);
}
也可采用返回WebMvcConfigurer的配置类方法(建议使用),相比来说这个方法更安全些,因为里边都是待实现的空方法。
@Configuration(
proxyBeanMethods = false
)
@Slf4j
public class WebConfig {
@Bean
public WebMvcConfigurer webMvcConfigurer(){
return new WebMvcConfigurer() {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
log.info("扩展消息转换器...");
//创建消息转换器对象
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
//设置对象转换器,底层使用Jackson将Java对象转为json
messageConverter.setObjectMapper(new JacksonObjectMapper());
//将上面的消息转换器对象追加到mvc框架的转换器集合中
converters.add(0,messageConverter);
}
};
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)