SpringBoot本地磁盤映射問題
SpringBoot本地磁盤映射
出于安全性考慮,SpringBoot無(wú)法直接訪問本地磁盤的文件。在某些應(yīng)用場(chǎng)景下,需要訪問例如本地的圖片等一些內(nèi)容。這時(shí)候,我們可以通過創(chuàng)建一個(gè)虛擬路徑來(lái)指向本地磁盤文件。
重寫WEB配置類,添加新的靜態(tài)資源路徑配置。
代碼如下:
@Configuration
public class WebConfig implements WebMvcConfigurer {
? ? @Override
? ? public void addResourceHandlers(ResourceHandlerRegistry registry) {
? ? ? ? registry.addResourceHandler("/watch/**").addResourceLocations("file:C://img/");
? ? }
}這種方法相當(dāng)于增加靜態(tài)資源路徑。SpringBoot本身自帶的靜態(tài)資源路徑并不會(huì)被替代。
SpringBoot本地磁盤路徑映射遇到的坑
今天學(xué)習(xí)了Springboot的磁盤映射,也就是將電腦上的D盤作為靜態(tài)資源讓用戶可以通過IP或外網(wǎng)地址訪問到,網(wǎng)上大多說(shuō)的是繼承 WebMvcConfigurerAdapter 但這個(gè)方法已經(jīng)過時(shí)了,網(wǎng)上又有好多人說(shuō)實(shí)現(xiàn)WebMvcConfigurer幾口或者繼承另一個(gè)類(忘了是啥了),我用的是實(shí)現(xiàn)WebMvcConfigurer,剛開始不知道怎么寫,具體實(shí)現(xiàn)那個(gè)方法,就去網(wǎng)上查最后結(jié)果如下
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
public void ?addResourceHandlers(ResourceHandlerRegistry registry){
? ? registry.addResourceHandler("/**").addResourceLocations("D:\\");
? ? WebMvcConfigurer.super.addResourceHandlers(registry);
}
}
這樣死活訪問不到頁(yè)面一直報(bào)錯(cuò)404,糾結(jié)了一上午,偶然找到了一篇文章,上面是這樣寫的:
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
public void ?addResourceHandlers(ResourceHandlerRegistry registry){
? ? registry.addResourceHandler("/**").addResourceLocations("file:D:\\");
? ? WebMvcConfigurer.super.addResourceHandlers(registry);
}
}復(fù)制過來(lái)之后,神奇的能訪問到資源了,可能是由于視覺受IDEA方法屬性的提示影響還是怎么著,一直以為file:是編輯軟件的提示不用加,導(dǎo)致后來(lái)@value取值時(shí)以為取不到呢!現(xiàn)在記錄下來(lái)預(yù)防自己以后再忘了
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${url.diskUrl}")
private String diskUrl;
public void ?addResourceHandlers(ResourceHandlerRegistry registry){
? ? registry.addResourceHandler("/**").addResourceLocations(diskUrl);
? ? WebMvcConfigurer.super.addResourceHandlers(registry);
}
}配置文件
url: diskUrl: file:D:\ webUrl: http://localhost:8080/
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
@ConfigurationProperties在IDEA中出現(xiàn)紅色波浪線問題解決方法
本文介紹了在Springboot項(xiàng)目中,當(dāng)@ConfigurationProperties注解出現(xiàn)紅色波浪線時(shí)的解決方法,文中有詳細(xì)的解決方案供大家參考,需要的朋友可以參考下2024-09-09
MyBatis攔截器動(dòng)態(tài)替換表名的方法詳解
因?yàn)槲覀兂志脤涌蚣芨嗟厥褂肕yBatis,那我們就借助于MyBatis的攔截器來(lái)完成我們的功能,這篇文章主要給大家介紹了關(guān)于MyBatis攔截器動(dòng)態(tài)替換表名的相關(guān)資料,需要的朋友可以參考下2022-04-04
IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的詳細(xì)流程
這篇文章主要介紹了IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10
java byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇java byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-10-10
IDEA如何設(shè)置SVN提交忽略文件 target.iml
使用IDEA的SVN插件時(shí),可能會(huì)遇到提交不必要文件的問題,解決這個(gè)問題有兩種方法:第一種是在IDEA設(shè)置中的File Types下的Ignore files and folders添加需要忽略的文件或文件夾;第二種是使用SVN客戶端TortoiseSVN,在項(xiàng)目目錄點(diǎn)擊右鍵選擇properties2024-10-10

