(13)处理静态资源(自定义资源映射)【从零开始学Spring Boot】

本文介绍如何在SpringBoot中自定义资源映射,包括使用代码方式添加自定义目录映射,以及如何指定外部目录作为资源路径。通过具体实例展示了如何实现不同类型的资源映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上面我们介绍了Spring Boot 的默认资源映射,一般够用了,那我们如何自定义目录? 
这些资源都是打包在jar包中的,然后实际应用中,我们还有很多资源是在管理系统中动态维护的,并不可能在程序包中,对于这种随意指定目录的资源,如何访问?

自定义目录

以增加 /myres/映射到 classpath:/myres/* 为例的代码处理为: 
实现类继承 WebMvcConfigurerAdapter 并重写方法 addResourceHandlers (对于

package org.springboot.sample.config;

 

import org.springboot.sample.interceptor.MyInterceptor1;

import org.springboot.sample.interceptor.MyInterceptor2;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

 

@Configuration

public class MyWebAppConfigurer

        extends WebMvcConfigurerAdapter {

 

    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/myres/**").addResourceLocations("classpath:/myres/");

        super.addResourceHandlers(registry);

    }

 

}

访问myres 文件夹中的test.jpg 图片的地址为 http://localhost:8080/myres/test.jpg 
这样使用代码的方式自定义目录映射,并不影响Spring Boot的默认映射,可以同时使用。

如果我们将/myres/修改为 /* 与默认的相同时,则会覆盖系统的配置,可以多次使用 addResourceLocations 添加目录,优先级先添加的高于后添加的。

          

其中 addResourceLocations 的参数是动参,可以这样写 addResourceLocations(“classpath:/img1/”, “classpath:/img2/”, “classpath:/img3/”);

 

使用外部目录

如果我们要指定一个绝对路径的文件夹(如 D:/data/api_files ),则只需要使用 addResourceLocations 指定即可。

// 可以直接使用addResourceLocations 指定磁盘绝对路径,同样可以配置多个位置,注意路径写法需要加上file:

registry.addResourceHandler("/api_files/**").addResourceLocations("file:D:/data/api_files");

 Spring Boot 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值