SpringBoot开发案例之配置静态资源文件路径

前言

SpringBoot本质上是为微服务而生的,以JAR的形式启动运行,但是有时候静态资源的访问是必不可少的,比如:image、js、css 等资源的访问。

默认静态资源路径

Spring Boot 对静态资源映射提供了默认配置,静态资源路径都是在classpath中:

classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources

我们在src/main/resources目录下新建 public、resources、static 三个目录,并分别放入 1.jpg 2.jpg 3.jpg 三张图片。然后通过浏览器分别访问:

http://localhost:8080/1.jpg
http://localhost:8080/2.jpg
http://localhost:8080/3.jpg

地址均可以正常访问,Spring Boot 默认会从 public resources static 三个目录里面查找是否存在相应的资源。

新增静态资源路径

我们在spring.resources.static-locations后面追加一个配置classpath:/itstyle/:

# 静态文件请求匹配方式
spring.mvc.static-path-pattern=/**
# 修改默认的静态寻址资源目录 多个使用逗号分隔
spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/itstyle/

自定义静态资源映射

在实际开发中,我们可能需要自定义静态资源访问以及上传路径,特别是文件上传,不可能上传的运行的JAR服务中,那么可以通过继承WebMvcConfigurerAdapter来实现自定义路径映射。

application.properties 文件配置:

# 图片音频上传路径配置(win系统自行变更本地路径)
web.upload.path=/home/file/

WechatApplication.java 启动配置:

/**
 * 语音测评后台服务
 * 创建者 柒
 * 创建时间    2018年3月8日
 */
@SpringBootApplication
public class WechatApplication extends WebMvcConfigurerAdapter  {
    
    private final static Logger LOGGER = LoggerFactory.getLogger(WechatApplication.class);
    
    @Value("${web.upload.path}")
    private String uploadPath;
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        super.addResourceHandlers(registry);
        registry.addResourceHandler("/uploads/**").addResourceLocations(
                "file:"+uploadPath);
        LOGGER.info("自定义静态资源目录、此处功能用于文件映射");
    }
    
    public static void main(String[] args) {
        SpringApplication.run(WechatApplication.class);
        LOGGER.info("语音测评后台服务启动成功");
    }

}

我们可以访问以下路径:

http://localhost:8080/uploads/1.jpg

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

干货分享:基于JBoss的七个Java应用场景

声明 本文主要是针对EAP7的相关实验的记录,本文仅供参考。仅代表作者的个人观点。 在实验过程中,笔者得到了舒服力和Kylin的大力帮助,很多代码的revie...

37150
来自专栏纯洁的微笑

springboot(一):入门篇

什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使...

31870
来自专栏IT笔记

SpringBoot开发案例之配置静态资源文件路径

SpringBoot本质上是为微服务而生的,以JAR的形式启动运行,但是有时候静态资源的访问是必不可少的,比如:image、js、css 等资源的访问。

459100
来自专栏WindCoder

SpringMVC和Struts2的区别

搜了好多两者相关的区别,感觉这个比较全面而且排版比较有规律,就选中了。最后会发出一些其他的链接可以参考对待。

2.2K20
来自专栏用户2442861的专栏

linux GDB调试c++程序

  GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNI...

14320
来自专栏Web项目聚集地

从零学习Spring MVC框架「运行流程及静态资源处理」

第一篇文章「从零学习Spring MVC框架「环境搭建和MVC架构」」中我们初步进行了环境搭建,对Spring MVC框架的运行原理有个大体了解,为了帮助大家理...

9810
来自专栏LanceToBigData

SpringBoot(一)走进Springboot的世界

什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使...

34190
来自专栏Albert陈凯

Hadoop数据分析平台实战——200Spring+MyBatis+Mysql框架整合离线数据分析平台实战——200Spring+MyBatis+Mysql框架整合

离线数据分析平台实战——200Spring+MyBatis+Mysql框架整合 项目总体介绍 本项目分为三个模块,分别为: 日志收集模块, 数据分析模块以及...

371120
来自专栏coding

为python版本抓狂,试下pyenv吧安装pyenv版本切换pyenv-virtualenv小结

写python时,最烦的事莫过于版本切换。python3已经很成熟了,但很多生产项目依然用的是2.7版本,本地环境经常需要切换版本。此外,不同项目的依赖也不同,...

24520
来自专栏JackieZheng

Spring Boot系列——如何集成Log4j2

上篇《Spring Boot系列——日志配置》介绍了Spring Boot如何进行日志配置,日志系统用的是Spring Boot默认的LogBack。

17420

扫码关注云+社区

领取腾讯云代金券