SpringBoot本地磁盤映射問題
SpringBoot本地磁盤映射
出于安全性考慮,SpringBoot無(wú)法直接訪問本地磁盤的文件。在某些應(yīng)用場(chǎng)景下,需要訪問例如本地的圖片等一些內(nèi)容。這時(shí)候,我們可以通過創(chuàng)建一個(gè)虛擬路徑來指向本地磁盤文件。
重寫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)上大多說的是繼承 WebMvcConfigurerAdapter 但這個(gè)方法已經(jīng)過時(shí)了,網(wǎng)上又有好多人說實(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ù)制過來之后,神奇的能訪問到資源了,可能是由于視覺受IDEA方法屬性的提示影響還是怎么著,一直以為file:是編輯軟件的提示不用加,導(dǎo)致后來@value取值時(shí)以為取不到呢!現(xiàn)在記錄下來預(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)文章
SpringBoot整合RabbitMQ, 實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的功能
這篇文章主要介紹了SpringBoot整合RabbitMQ, 實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的功能,幫助大家更好得理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下2021-03-03詳解JUC并發(fā)編程中的進(jìn)程與線程學(xué)習(xí)
這篇文章主要為大家詳細(xì)介紹了JUC并發(fā)編程中的進(jìn)程與線程學(xué)習(xí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03Dapr在Java中的服務(wù)調(diào)用實(shí)戰(zhàn)過程詳解
這篇文章主要為大家介紹了Dapr在Java中的服務(wù)調(diào)用實(shí)戰(zhàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Win10系統(tǒng)下配置Java環(huán)境變量
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著Win10系統(tǒng)下配置Java環(huán)境變量展開,文中有非常詳細(xì)的介紹及圖文示例,需要的朋友可以參考下2021-06-06深入探究Java?@MapperScan實(shí)現(xiàn)原理
之前是直接在Mapper類上面添加注解@Mapper,這種方式要求每一個(gè)mapper類都需要添加此注解,麻煩。通過使用@MapperScan可以指定要掃描的Mapper類的包的路徑,這篇文章深入探究Java?@MapperScan的實(shí)現(xiàn)原理2023-01-01