1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Spring Boot——自定义Web配置类后无法访问/static文件夹下静态资源

Spring Boot——自定义Web配置类后无法访问/static文件夹下静态资源

时间:2020-03-30 12:56:44

相关推荐

Spring Boot——自定义Web配置类后无法访问/static文件夹下静态资源

问题描述

自定义Web配置类后无法访问/static文件夹下静态资源。

已加相关依赖包。

官方文档

Spring MVC Auto Configuration

Maven

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

问题分析

(1)在src/main/resources/目录下创建static文件夹

(2)在src/main/resources/目录下创建resources文件夹

(3)在src/main/resources/目录下创建public文件夹

(4)在src/main/resources/目录下创建META-INF/resources文件夹

目录结构图:

优先级顺序:/META-INF/resources>resources>static>public

Spring Boot 访问静态资源的规则在WebMvcAutoConfiguration自动配置类中

在该类下有对资源处理的方法

默认按照该加载顺序,加载静态资源文件。

Web的自动配置类中

在没有WebMvcConfigurationSupport.class的情况下,才会使用Spring Boot的Web自动配置

在==@EnableWebMvc==中,通过 @Import 导入了DelegatingWebMvcConfiguration类

而DelegatingWebMvcConfiguration类 继承于WebMvcConfigurationSupport 类,从而导致了 WebMvcAutoConfiguration 类没有生效。

WebMvcConfigurationSupport 类没有添加任何静态资源的映射。

解决方案

对于功能较少的项目,可以使用 @EnableWebMvc 注解,全面接管Spring Boot对SpringMVC的自动注入,自己来写SpringMVC 运行所需的一些配置,这样会减少自动注入带来的一些无意义性能消耗,可以将WebMvcAutoConfiguration自动配置类中addResourceLocations方法代码直接覆盖自定义配置类的addResourceLocations方法,即可解决无法访问/static文件夹下静态资源的问题;

对于功能较多的项目,使用Spring Boot推荐的对SpringMVC拓展方法 —— 继承 WebMvcConfigurer 类,这样不仅可以实现添加WEB组件,也保留了SpringBoot底层的自动注入。

参考文章

/qq_34369569/article/details/99292925

/qq_34797335/article/details/80194137

/qq_36481052/article/details/79075214

/get-article-detail-132221.html

/qq_35299712/article/details/80061532

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。