溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBoot中靜態(tài)資源訪問配置以及內(nèi)置tomcat虛擬文件映射路徑是怎樣的

發(fā)布時(shí)間:2021-09-29 14:17:55 來源:億速云 閱讀:218 作者:柒染 欄目:編程語(yǔ)言

本篇文章為大家展示了SpringBoot中靜態(tài)資源訪問配置以及內(nèi)置tomcat虛擬文件映射路徑是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

靜態(tài)資源訪問配置

@Configuration
@EnableWebMvc
public class StaticResourceConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }

}

內(nèi)置tomcat虛擬文件映射路徑

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/image/**").addResourceLocations("file:C:/image/");
    }

}

應(yīng)用場(chǎng)景

把文件獨(dú)立出來放到其他盤符,比如我的服務(wù)在 /server 文件放到 /data
通常情況下放到對(duì)應(yīng)項(xiàng)目的 webapps 下的文件才能正常訪問,現(xiàn)在我需要訪問E盤中的內(nèi)容,這時(shí)候我就需要 自定義靜態(tài)資源映射

實(shí)現(xiàn)方法

實(shí)現(xiàn)類繼承 WebMvcConfigurerAdapter 并重寫方法 addResourceHandlers,代碼如下

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class FileServerConfig extends WebMvcConfigurerAdapter {
    @Value("${local.fileserver.dir}")
    private String localFileServerDir;

    @Value("${local.fileserver.path}")
    private String localFileServerPath;

    //訪問圖片方法
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("/" + this.getLocalFileServerPath() + "/**").addResourceLocations("file:" + this.getLocalFileServerDir() + "/");

        // 本地文件夾要以"flie:" 開頭,文件夾要以"/" 結(jié)束,example:
        //registry.addResourceHandler("/abc/**").addResourceLocations("file:D:/pdf/");
        super.addResourceHandlers(registry);
    }

    /**
     * 文件實(shí)際路徑轉(zhuǎn)為服務(wù)器url路徑
     * @param absolutePath
     * @return
     */
    public String toServerPath(String absolutePath) {
        absolutePath = absolutePath.replaceAll("\\\\", "/");
        return "/" + absolutePath.replace(localFileServerDir, localFileServerPath);
    }

    public String getLocalFileServerDir() {
        return localFileServerDir;
    }

    public void setLocalFileServerDir(String localFileServerDir) {
        this.localFileServerDir = localFileServerDir;
    }

    public String getLocalFileServerPath() {
        return localFileServerPath;
    }

    public void setLocalFileServerPath(String localFileServerPath) {
        this.localFileServerPath = localFileServerPath;
    }
}

注意:本地文件夾要以"flie:" 開頭,文件夾要以"/" 結(jié)束,example:  
registry.addResourceHandler("/pdf/**").addResourceLocations("file:D:/pdf/");

意思是你的服務(wù)器路徑 serverdata 對(duì)應(yīng)你本地的 /data目錄這時(shí)你的,假如要訪問 /data/test.jpg圖片,對(duì)應(yīng)的服務(wù)器路徑為 http://localhost:serverdata/test.jpg  

上述內(nèi)容就是SpringBoot中靜態(tài)資源訪問配置以及內(nèi)置tomcat虛擬文件映射路徑是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI