SpringBoot - 实现静态资源的访问(附:修改过滤规则、静态资源位置)

x33g5p2x  于2022-06-20 转载在 Spring  
字(2.7k)|赞(0)|评价(0)|浏览(402)

一、默认静态资源访问策略

(1)当我们使用 IntelliJ IDEA 创建 Spring Boot 项目,会默认创建 classpath:/static/ 目录,我们直接把静态资源放在这个目录下即可。

(2)我们直接在浏览器中输入“http://localhost:8080/java.png”即可看到我们添加的这张图片。

二、自定义策略

如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略,自定义的方式有如下两种。

1,在配置文件中定义

(1)我们在 application.properties 中直接定义过滤规则和静态资源位置: 

  • 过滤规则改为 /static
  • 静态资源位置仍然是 classpath:/static/ 没有变化
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/

(2)重启项目,我们这次可以在浏览器中输入“http://localhost:8080/static/java.png”来访问添加的静态图片。

2,通过 Java 编码定义

原理查看:(901条消息) WebMvcConfigurer 与 WebMvcConfigurationSupport避坑指南_OkidoGreen的博客-CSDN博客

https://blog.csdn.net/z69183787/article/details/108587048

或源码:

spring-framework/DelegatingWebMvcConfiguration.java at b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a · spring-projects/spring-framework · GitHub

https://github.com/spring-projects/spring-framework/blob/b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.java spring-framework/WebMvcConfigurationSupport.java at b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a · spring-projects/spring-framework · GitHub

https://github.com/spring-projects/spring-framework/blob/b595dc1dfad9db534ca7b9e8f46bb9926b88ab5a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java

(1)这种方式我们只要创建一个类继承 WebMvcConfigurer 接口即可,然后实现该接口的 addResourceHandlers 方法。

| <br>1<br><br>2<br><br>3<br><br>4<br><br>5<br><br>6<br><br>7<br><br>8<br><br>9<br><br>10<br><br>11<br><br>12<br><br>13<br><br>14<br><br>15<br><br>16<br><br>17<br> | <br>package com.example.demo;<br><br>import org.springframework.stereotype.Component;<br><br>import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;<br><br>import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;<br><br>/**<br><br> ``* 静态资源映射<br><br> ``*/<br><br>@Component<br><br>public class  MyWebMvcConfig ``implements WebMvcConfigurer {<br><br>    ``@Override<br><br>    ``public void addResourceHandlers(ResourceHandlerRegistry registry) {<br><br>        ``registry.addResourceHandler(``"/static/**"``)<br><br>                ``.addResourceLocations(``"classpath:/static/"``);<br><br>    ``}<br><br>}<br> |

(2)重启项目,效果同上面是一样的。我们同样可以在浏览器中输入“http://localhost:8080/static/java.png”来访问添加的静态图片。
原文出自:www.hangge.com  转载请保留原文链接:SpringBoot - 实现静态资源的访问(附:修改过滤规则、静态资源位置)

相关文章